parse_json()
將 string
解譯為 JSON 值,並以 dynamic
形式傳回值。 可能的話,值會轉換成相關的資料類型。 如需不具數據類型轉換的嚴格剖析,請使用 extract () 或 extract_json () 函式。
當您需要擷取一個以上的 JSON 復合物件元素時,最好在 extract_json () 函式上使用 parse_json (# A1 函式。 盡可能使用 dynamic () 。
已被取代的別名: parsejson () 、toobject () 、todynamic ()
語法
parse_json(
json)
深入瞭解 語法慣例。
參數
名稱 | 類型 | 必要 | Description |
---|---|---|---|
json | string |
✔️ | JSON 格式值 或 動態 屬性包形式的字串,以剖析為 JSON。 |
傳回
dynamic
類型的物件,其取決於 json 的值:
- 如果 json 的類型為
dynamic
,其值會依現狀使用。 - 如果 json 的類型為
string
,而且是正確格式的 JSON 字串,則會剖析字串並傳回所產生的值。 - 如果 json 的類型為
string
,但不是正確格式的 JSON 字串,則傳回的值是類型為string
且保有原始dynamic
值的物件。
範例
在下列範例中,當 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}}
然後,下列查詢會擷取 物件中位置的值 duration
,並從中擷取兩個位置, duration.value
並 duration.min
分別 (118.0
和 110.0
) 。
T
| extend d=parse_json(context_custom_metrics)
| extend duration_value=d.duration.value, duration_min=d["duration"]["min"]
注意事項
通常會有一個描述屬性包的 JSON 字串,其中的一個「位置」是另一個 JSON 字串。
例如:
let d='{"a":123, "b":"{\\"c\\":456}"}';
print d
在這種情況下,不只需要叫用 parse_json
兩次,也務必在第二次呼叫中使用 tostring
。 否則,對 parse_json
的第二次呼叫只會依原狀將輸入傳遞至輸出,因為其宣告的類型是 dynamic
。
let d='{"a":123, "b":"{\\"c\\":456}"}';
print d_b_c=parse_json(tostring(parse_json(d).b)).c
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應