parse_json()
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() daripada 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 | Jenis | Diperlukan | Deskripsi |
---|---|---|---|
json | string |
✔️ | String dalam bentuk nilai berformat JSON atau tas properti dinamis untuk diurai 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 bertipedynamic
yang menyimpan nilaistring
asli.
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 ia mengambil dua slot, duration.value
dan duration.min
(118.0
dan 110.0
, masing-masing).
T
| 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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk