Tous les produits
Search
Centre de documentation

Simple Log Service:Fonctions JSON

Dernière mise à jour :Aug 18, 2026

Cette rubrique présente la syntaxe de base des fonctions JSON, illustrée par des exemples.

SLS prend en charge les fonctions JSON suivantes.

Important
  • Dans les instructions de requête Log Service, entourez les chaînes de guillemets simples (''). Log Service interprète les caractères non entourés de guillemets ou placés entre guillemets doubles ("") comme un nom de champ ou de colonne. Par exemple, 'status' représente la chaîne status, tandis que status ou "status" représente le champ de journal nommé status.

  • Pour développer la valeur d'un champ de journal au format JSON en plusieurs lignes, utilisez la clause UNNEST. Pour plus d'informations, consultez la rubrique Clause UNNEST.

  • Si une chaîne ne peut pas être analysée en tant que JSON, la fonction renvoie null.

  • Si un journal JSON est tronqué lors de la collecte, son analyse via une fonction JSON génère une erreur et interrompt la requête. Pour gérer cette erreur, encapsulez l'appel de fonction dans une expression TRY afin de capturer l'exception et de permettre la poursuite de la requête. Par exemple : * | select message, try(json_parse(message)). Pour plus d'informations, consultez la rubrique Expression TRY.

Nom de la fonction

Syntaxe

Description

Prise en charge SQL

Prise en charge SPL

Fonction json_array_contains

json_array_contains(x, value)

Vérifie si un tableau JSON contient une valeur spécifique.

Fonction json_array_get

json_array_get(x, index)

Renvoie l'élément situé à un index spécifié dans un tableau JSON.

×

Fonction json_array_length

json_array_length(x)

Renvoie le nombre d'éléments dans un tableau JSON.

Fonction json_extract

json_extract(x, json_path)

Extrait un objet ou un tableau JSON à partir d'un objet ou d'un tableau JSON.

Fonction json_extract_scalar

json_extract_scalar(x, json_path)

Extrait une valeur scalaire, telle qu'une chaîne, un entier ou une valeur booléenne, à partir d'un objet ou d'un tableau JSON.

Fonction json_extract_bool

json_extract_bool(x, json_path)

Extrait une valeur booléenne à partir d'un objet ou d'un tableau JSON.

×

Fonction json_extract_long

json_extract_long(x, json_path)

Extrait une valeur bigint à partir d'un objet ou d'un tableau JSON.

×

Fonction json_extract_double

json_extract_double(x, json_path)

Extrait une valeur double à partir d'un objet ou d'un tableau JSON.

×

Fonction json_format

json_format(x)

Formate une valeur JSON en chaîne.

Fonction json_parse

json_parse(x)

Analyse une chaîne pour la convertir en valeur JSON.

Fonction json_size

json_size(x, json_path)

Renvoie le nombre d'éléments dans un tableau JSON ou le nombre de paires clé-valeur dans un objet JSON.

Fonction json_object_flatten

json_object_flatten(x)

Aplatit un objet JSON en une structure clé-valeur à un seul niveau.

×

Fonction json_array_contains

La fonction json_array_contains vérifie si un tableau JSON contient une valeur spécifique.

Syntaxe

json_array_contains(x, value)

Paramètres

Paramètre

Description

x

Un tableau JSON.

value

La valeur à rechercher dans le tableau JSON.

Type de valeur renvoyée

boolean

Exemple

Vérifiez si le tableau JSON [1, 2, 3] contient la valeur 2.

  • Instruction de requête (Test)

    * | SELECT json_array_contains('[1, 2, 3]', 2)
  • La requête renvoie true car le tableau JSON [1, 2, 3] contient 2.

Fonction json_array_get

Renvoie l'élément situé à un index spécifié dans un tableau JSON.

Syntaxe

json_array_get(x, index)

Paramètres

Paramètre

Description

x

Un tableau JSON.

index

L'index de l'élément (commençant à zéro).

Type de retour

varchar

Exemple

Renvoie l'élément à l'index 1 du tableau JSON ["a", [3, 9], "c"].

  • Instruction de requête (Test)

    * | SELECT json_array_get('["a", [3, 9], "c"]', 1)
  • Le résultat de la requête est [3,9].

Fonction json_array_length

Compte les éléments d'un tableau JSON.

Syntaxe

json_array_length(x)

Paramètres

Paramètre

Description

x

Le tableau JSON source.

Type de valeur renvoyée

bigint

Exemples

  • Exemple 1 : Compte les éléments du tableau JSON dans le champ Results.

    • Champ d'exemple

      Results:[{"EndTime":1626314920},{"FireResult":2}]
    • Instruction de requête et d'analyse

      * | SELECT json_array_length(Results)
    • Le résultat est 2.

  • Exemple 2 : Compte les éléments du tableau JSON dans le champ time.

    • Champ d'exemple

      time:["time_local","request_time","upstream_response_time"]
    • Instruction de requête et d'analyse

      * | SELECT json_array_length(time)
    • Le résultat est 3.

Fonction json_extract

La fonction json_extract extrait une valeur JSON, telle qu'un objet ou un tableau JSON, à partir d'un objet ou d'un tableau JSON.

Important

La fonction json_extract renvoie une erreur pour les types JSON invalides. Utilisez plutôt la fonction json_extract_scalar.

Syntaxe

json_extract(x, json_path)

Paramètres

Paramètre

Description

x

Un objet ou un tableau JSON.

json_path

Un chemin JSON, par exemple $.store.book[0].title. Pour plus de détails, consultez la rubrique Définir le json_path.

Type de valeur renvoyée

Une chaîne au format JSON.

Exemples

SQL

Extrayez la valeur du champ EndTime à partir du champ Results.

  • Données d'exemple

    Results:[{"EndTime":1626314920},{"FireResult":2}]
  • Instruction de requête

    * | SELECT json_extract(Results, '$.0.EndTime')
  • La requête renvoie 1626314920.

SPL

Extrayez la valeur du champ EndTime à partir du champ Results.

  • Données d'exemple

Results:[{"EndTime":1626314920},{"FireResult":2}]
  • Instruction SPL

* | extend a = json_extract(Results, '$.0.EndTime')
  • Résultat SPL

Le résultat inclut le champ a défini sur 1626314920.

Fonction json_extract_scalar

La fonction json_extract_scalar extrait une valeur scalaire (chaîne, entier ou booléen) à partir d'un objet ou d'un tableau JSON.

Syntaxe

json_extract_scalar(x, json_path)

Paramètres

Paramètre

Description

x

Un objet ou un tableau JSON.

json_path

Le chemin JSON, par exemple $.store.book[0].title. Pour plus d'informations, consultez la rubrique Définir le json_path.

Type de retour

varchar

Exemples

SQL

Extrayez la valeur du champ RawResultCount à partir du champ Results, convertissez la valeur en bigint, puis calculez la somme.

  • Données d'exemple

    Results:[{"EndTime":1626314920},{"RawResultCount":1}]
  • Instruction de requête

    * | SELECT sum(cast(json_extract_scalar(Results,'$.1.RawResultCount') AS bigint) )
  • Le résultat de la requête est 288.

SPL

Extrayez la valeur du champ RawResultCount à partir du champ Results.

  • Données d'exemple

Results:[{"EndTime":1626314920},{"RawResultCount":1}]
  • Instruction SPL

* | extend a = json_extract_scalar(Results, '$.1.RawResultCount')
  • La valeur du champ a est 1.

Fonction json_extract_bool

Extrait une valeur booléenne à partir d'un objet ou d'un tableau JSON. Renvoie null si l'extraction échoue.

Syntaxe

json_extract_bool(x, json_path)

Paramètres

Paramètre

Description

x

Un objet ou un tableau JSON.

json_path

Le chemin JSON, par exemple $.store.book[0].title. Pour plus d'informations, consultez la rubrique Définir le json_path.

Type de valeur renvoyée

boolean

Exemple

Extrayez une valeur booléenne du tableau JSON Results.

  • Champ d'exemple

    Results:[{"ret":true},{"status":FALSE}]
  • Instruction de requête

    * | SELECT json_extract_bool(Results, '$.0.ret')
  • Résultat de la requête

    La requête renvoie true.

Fonction json_extract_long

Extrait une valeur bigint à partir d'un objet ou d'un tableau JSON. Renvoie null si l'extraction échoue.

Syntaxe

json_extract_long(x, json_path)

Paramètres

Paramètre

Description

x

Une valeur JSON.

json_path

Le chemin JSON, par exemple $.store.book[0].title. Pour plus d'informations, consultez la rubrique Définir le json_path.

Valeur de retour

bigint

Exemple

Cet exemple extrait une valeur bigint du tableau JSON Results.

  • Champ d'exemple

    Results:[{"EndTime":1626314920},{"FireResult":2}]
  • Instruction de requête

    * | SELECT json_extract_long(Results, '$.0.EndTime')
  • Résultat de la requête

    Renvoie 1626314920.

Fonction json_extract_double

Extrait une valeur double à partir d'un objet ou d'un tableau JSON. Renvoie null si l'extraction échoue.

Syntaxe

json_extract_double(x, json_path)

Paramètres

Paramètre

Description

x

Un objet ou un tableau JSON.

json_path

Le chemin JSON, par exemple $.store.book[0].title. Pour plus de détails, consultez la rubrique Comment définir json_path.

Type de retour

double

Exemple

Extrayez une valeur double du tableau JSON Results.

  • Champ d'exemple

    Results:[{"EndTime":1626314920},{"FireResult":2}]
  • Instruction de requête et d'analyse

    * | SELECT json_extract_double(Results, '$.0.EndTime')
  • Résultat de la requête et de l'analyse

    La requête renvoie 1626314920.0.

Fonction json_format

La fonction json_format formate une valeur JSON sous forme de chaîne.

Syntaxe

json_format(x)

Paramètres

Paramètre

Description

x

Une valeur JSON.

Type de retour

Varchar.

Exemple

Convertit le tableau JSON [1,2,3] en la chaîne '[1, 2, 3]'.

  • Instruction de requête (Test)

    * | SELECT json_format(json_parse('[1, 2, 3]'))
  • Le résultat de la requête est '[1, 2, 3]'.

Fonction json_parse

La fonction json_parse convertit une chaîne au type JSON en validant son format. Toutefois, l'utilité de cette fonction est limitée. Pour extraire des valeurs d'une chaîne JSON, utilisez la fonction json_extract_scalar.

Syntaxe

json_parse(x)

Paramètres

Paramètre

Description

x

Une expression de chaîne.

Type de valeur renvoyée

Type JSON.

Exemples

SQL

  • Exemple 1

    Convertit la chaîne '[1, 2, 3]' en tableau JSON [1, 2, 3].

    • Instruction de requête (Test)

       * | SELECT json_parse('[1, 2, 3]')
    • Le résultat de la requête est [1, 2, 3].

  • Exemple 2

    Extrait les clés du champ logging.

    • Cet exemple traite le champ logging, qui est un objet JSON contenant des paires clé-valeur telles que message, processName, thread, threadName, module, funcName, levelname et process.

    • Instruction de requête (Test)

      *| SELECT map_keys(try_cast(json_parse(logging) AS map(varchar, json)))
    • Le résultat de la requête est ["funcName","levelname","message","module","process","processName","thread","threadName"].

SPL

Convertit la chaîne '[1, 2, 3]' en tableau JSON [1, 2, 3].

  • Instruction SPL

 * | extend a = json_parse('[1, 2, 3]')
  • Résultat SPL

La valeur du champ a est [1, 2, 3].

Fonction json_size

La fonction json_size renvoie le nombre d'éléments dans un objet ou un tableau JSON.

Syntaxe

json_size(x, json_path)

Paramètres

Paramètre

Description

x

Un objet ou un tableau JSON.

json_path

Le chemin JSON, par exemple $.store.book[0].title. Pour plus d'informations, consultez la rubrique Définir le json_path.

Type de valeur renvoyée

bigint

Exemple

Cet exemple calcule le nombre d'éléments dans le champ RawResults.

  • Champ d'exemple

    Results:[{"EndTime":1626314920,"FireResult":2,"RawResults":[{"_col0":"1094"}]}]
  • Instruction de requête

    * | SELECT json_size(Results, '$.0.RawResults')
  • Le résultat de la requête est 1.

Fonction json_object_flatten

Aplatit un objet JSON en une structure clé-valeur à un seul niveau.

Syntaxe

json_object_flatten(x)

Paramètres

Paramètre

Description

x

Spécifie la valeur JSON à aplatir. La fonction renvoie null si l'entrée n'est pas un objet JSON.

Type de valeur renvoyée

map(varchar, varchar)

Exemple

Aplatit l'objet JSON du champ 'content' en une structure clé-valeur à un seul niveau.

  • Champ d'exemple

    content: '{"Time":1626314920,"Info":[{"count":"1"}],"Body":"this is test"}'
  • Instruction de requête

    select json_object_flatten(content) as data from  (values '{"Time":1626314920,"Info":[{"count":"1"}],"Body":"this is test"}') t (content) limit 1;
  • Sortie

    La valeur du champ data est {"Time":"1626314920","Info":"[{\"count\":\"1\"}]","Body":"this is test"}. Cela montre que l'objet JSON original a été aplati en une structure clé-valeur à un seul niveau.