Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : ✅Microsoft Fabric✅
Interprète une string comme une valeur JSON et retourne la valeur en tant que dynamic. Si possible, la valeur est convertie en types de données pertinents. Pour l’analyse stricte sans conversion de type de données, utilisez des fonctions extract() ou extract_json().
Il est préférable d’utiliser la fonction parse_json() sur la fonction extract_json() lorsque vous devez extraire plusieurs éléments d’un objet composé JSON. Utilisez dynamic() si possible.
Alias déconseillés : parsejson(), toobject(), todynamic()
Syntaxe
parse_json(
json)
En savoir plus sur les conventions de syntaxe.
Paramètres
| Nom | Type | Requise | Description |
|---|---|---|---|
| json | string |
✔️ | Chaîne sous la forme d’une valeur au format JSON ou d’un conteneur de propriétés dynamiques à analyser en tant que JSON. |
Retours
Objet de type dynamic déterminé par la valeur de json :
- Si json est de type
dynamic, sa valeur est utilisée telle quelle. - Si json est de type
stringet qu’il s’agit d’une chaîne JSON correctement mise en forme, la chaîne est analysée et la valeur produite est retournée. - Si json est de type
string, mais qu’il ne s’agit pas d’une chaîne JSON correctement mise en forme, la valeur retournée est un objet de typedynamicqui contient la valeurstringd’origine.
Exemples
Les exemples de cette section montrent comment utiliser la syntaxe pour vous aider à commencer.
Analyse des métriques de durée
Dans l’exemple suivant, quand context_custom_metrics est un élément string, le résultat ressemble à ceci :
{"duration":{"value":118.0,"count":5.0,"min":100.0,"max":150.0,"stdDev":0.0,"sampledValue":118.0,"sum":118.0}}
Ensuite, la requête suivante récupère la valeur de l’emplacement duration dans l’objet, et à partir de celle-ci récupère deux emplacements, duration.value et duration.min (118.0 et 110.0, respectivement).
datatable(context_custom_metrics:string)
[
'{"duration":{"value":118.0,"count":5.0,"min":100.0,"max":150.0,"stdDev":0.0,"sampledValue":118.0,"sum":118.0}}'
]
| extend d = parse_json(context_custom_metrics)
| extend duration_value = d.duration.value, duration_min = d.duration.min
Sortie
| context_custom_metrics | d | duration_value | duration_min |
|---|---|---|---|
| {"duration » :{"value » :118.0,"count » :5.0,"min » :100.0,"max » :150.0,"stdDev » :0.0,"sampledValue » :118.0,"sum » :118.0}} | {"duration » :{"value » :118,"count » :5,"min » :100,"max » :150,"stdDev » :0,"sampledValue » :118,"sum » :118}} | 118 | 100 |
Analyse JSON imbriquée
Il est courant d’avoir une chaîne JSON qui décrit un conteneur de propriétés dans lequel l’un des « emplacements » est une autre chaîne JSON.
Par exemple :
let d='{"a":123, "b":"{\\"c\\":456}"}';
print d
Sortie
| print_0 |
|---|
| {"a » :123, « b » :"{"c » :456}"} |
Dans ce cas, il est nécessaire d’appeler parse_json deux fois, et également de s’assurer que dans le deuxième appel, tostring est utilisé. Sinon, le deuxième appel à parse_json transmet simplement l’entrée au as-isde sortie, car son type déclaré est dynamic.
let d='{"a":123, "b":"{\\"c\\":456}"}';
print d_b_c=parse_json(tostring(parse_json(d).b)).c
ouput
| d_b_c |
|---|
| 456 |