Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: ✅Microsoft Fabric✅
Interpreta string come valore JSON e restituisce il valore come dynamic. Se possibile, il valore viene convertito in tipi di dati pertinenti. Per l'analisi rigorosa senza conversione dei tipi di dati, usare le funzioni extract() o extract_json().
È preferibile usare la funzione parse_json() sulla funzione extract_json() quando è necessario estrarre più di un elemento di un oggetto composto JSON. Usare dynamic() quando possibile.
Alias deprecati: parsejson(), toobject(), todynamic()
Sintassi
parse_json(
json)
Altre informazioni sulle convenzioni di sintassi.
Parametri
| Nome | Digita | Obbligatorio | Descrizione |
|---|---|---|---|
| json | string |
✔️ | Stringa sotto forma di valore in formato JSON o contenitore di proprietà dinamiche da analizzare come JSON. |
Valori restituiti
Un oggetto di tipo dynamic determinato dal valore di json:
- Se json è di tipo
dynamic, il relativo valore viene usato così com'è. - Se json è di tipo
stringed è una stringa JSON correttamente formattata, la stringa viene analizzata e viene restituito il valore prodotto. - Se json è di tipo
string, ma non è una stringa JSON correttamente formattata, il valore restituito è un oggetto di tipodynamicche contiene il valorestringoriginale.
Esempi
Negli esempi di questa sezione viene illustrato come usare la sintassi per iniziare.
Analisi delle metriche della durata
Nell'esempio seguente, quando context_custom_metrics è un valore string simile al seguente:
{"duration":{"value":118.0,"count":5.0,"min":100.0,"max":150.0,"stdDev":0.0,"sampledValue":118.0,"sum":118.0}}
La query seguente recupera quindi il valore dello slot di duration nell'oggetto e recupera due slot, duration.value e duration.min ( rispettivamente118.0 e 110.0).
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
Output
| 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 |
Analisi JSON annidata
È comune avere una stringa JSON che descrive un contenitore di proprietà in cui uno degli slot è un'altra stringa JSON.
Ad esempio:
let d='{"a":123, "b":"{\\"c\\":456}"}';
print d
Output
| print_0 |
|---|
| {"a":123, "b":"{"c":456}"} |
In tali casi, non solo è necessario richiamare due volte parse_json, ma bisogna anche assicurarsi che nella seconda chiamata venga usato tostring. In caso contrario, la seconda chiamata a parse_json passa semplicemente l'input all'output as-is, perché il tipo dichiarato è 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 |
Contenuto correlato
- Operatore parse
- plug-in bag_unpack
- operatore mv-expand