GitHubContribuer dans GitHub: Editer en ligne

extract_json (), extractjson ()

Obtenir un élément spécifié à partir d'un texte JSON à l'aide d'une expression de chemin.

Vous pouvez éventuellement convertir la chaîne extraite en un type spécifique.

Important

Les fonctions extract_json() et extractjson() sont interprétées de manière équivalente.

extract_json("$.hosts[1].AvailableMB", EventText, typeof(int))

Syntaxe

extract_json(jsonPath, dataSource, type)

extractjson(jsonPath, dataSource, type)

Arguments

  • jsonPath: chaîne JSONPath qui définit un accesseur dans le document JSON.
  • dataSource: document JSON.
  • type: littéral de type facultatif (par exemple, typeof (long)). Si elle est fournie, la valeur extraite est convertie en ce type.

Retours

Cette fonction exécute une requête JSONPath dans dataSource, qui contient une chaîne JSON valide, convertissant éventuellement cette valeur en un autre type en fonction du troisième argument.

Exemple

Important

Modifiez les variables pour vous assurer qu'elles reflètent les journaux de votre système.

La notation [crochet] et la notation point (.) sont équivalentes:

T
| extend value_extracted = extract_json("$.hosts[1].AvailableMB", payload, typeof(int))

T
| extend value_extracted = extract_json("$['hosts'][1]['AvailableMB']", payload, typeof(int))

Exemple 2

La notation [crochet] et la notation point (.) sont équivalentes:

events    
    | project original_time, data_source_name, payload,event_uuid
    //--- Search for the last 5 minutes of data
    | where original_time > ago(5m)  and payload contains  '{' and event_uuid == 'xxxxxxxx-xxxxxxxx'
    | project e = extract_json('$.variable.full.path', payload, typeof(string)) 
    | take 10000

Conseils en matière de performances

  • Appliquez les clauses where avant d'utiliser extract_json()
  • Envisagez d'utiliser une correspondance d'expression régulière avec extract à la place. Cela peut s'exécuter beaucoup plus rapidement et est efficace si le JSON est produit à partir d'un modèle.
  • Utilisez parse_json() si vous devez extraire plusieurs valeurs du JSON.
  • Pensez à faire analyser le JSON lors de l'ingestion en déclarant que le type de la colonne est dynamique.