parse_json()

Beralih layanan menggunakan menu tarik-turun Versi. Pelajari selengkapnya tentang navigasi.
Berlaku untuk: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel

Menafsirkan string sebagai nilai JSON dan mengembalikan nilai sebagai dynamic. Jika memungkinkan, nilai diubah menjadi jenis data yang relevan. Untuk penguraian ketat tanpa konversi jenis data, gunakan fungsi extract() atau extract_json().

Lebih baik menggunakan fungsi parse_json() melalui fungsi extract_json() ketika Anda perlu mengekstrak lebih dari satu elemen objek majemuk JSON. Gunakan dynamic() jika memungkinkan.

Alias yang tidak digunakan lagi: parsejson(), toobject(), todynamic()

Sintaks

parse_json( Json)

Pelajari selengkapnya tentang konvensi sintaksis.

Parameter

Nama Tipe Wajib Deskripsi
json string ✔️ String dalam bentuk nilai berformat JSON atau tas properti dinamis untuk mengurai sebagai JSON.

Mengembalikan

Objek jenis dynamic yang ditentukan oleh nilai json:

Contoh

Contoh di bagian ini memperlihatkan cara menggunakan sintaks untuk membantu Anda memulai.

Penguraian metrik durasi

Dalam contoh berikut, saat context_custom_metrics adalah string yang terlihat seperti ini:

{"duration":{"value":118.0,"count":5.0,"min":100.0,"max":150.0,"stdDev":0.0,"sampledValue":118.0,"sum":118.0}}

Kemudian kueri berikut mengambil nilai slot duration dalam objek, dan dari itu masing-masing mengambil dua slot, duration.value dan duration.min (118.0 dan 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

Hasil

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

Penguraian JSON berlapis

Adalah umum untuk memiliki string JSON yang menggambarkan bag properti tempat salah satu "slot" adalah string JSON lain.

Contohnya:

let d='{"a":123, "b":"{\\"c\\":456}"}';
print d

Hasil

print_0
{"a":123, "b":"{"c":456}"}

Dalam kasus seperti itu, tidak hanya perlu untuk memanggil parse_json dua kali, tetapi juga untuk memastikan bahwa dalam panggilan kedua, tostring digunakan. Jika tidak, panggilan kedua ke parse_json hanya meneruskan input ke output as-is, karena jenis yang dinyatakan 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