Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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:
- Jika json adalah jenis
dynamic, nilainya digunakan apa adanya. - Jika json adalah jenis
string, dan merupakan string JSON yang diformat dengan benar, string diurai, dan nilai yang dihasilkan dikembalikan. - Jika json adalah jenis
string, tetapi bukan string JSON yang diformat dengan benar, nilai yang dikembalikan adalah objek bertipedynamicyang menyimpan nilaistringasli.
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 |
Konten terkait
- operator penguraian
- plugin bag_unpack
- operator mv-expand