Bagikan melalui


parse_json()

Berlaku untuk: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft 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

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

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

Catatan

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

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 akan meneruskan input ke output apa adanya, karena jenis yang dideklarasikan adalah dynamic.

let d='{"a":123, "b":"{\\"c\\":456}"}';
print d_b_c=parse_json(tostring(parse_json(d).b)).c