適用対象: ✅Microsoft Fabric✅Azure データ エクスプローラー✅Azure Monitor✅Microsoft Sentinel
string
を JSON 値として解釈し、値を dynamic
として返します。 可能な場合、値を関連するデータ型に変換します。 データ型変換なしで厳密な解析を行う場合は、 extract() または extract_json() 関数を使用します。
JSON 複合オブジェクトの複数の要素を抽出する必要がある場合は、 extract_json() 関数に対して parse_json() 関数を使用することをお勧めします。 可能な場合 dynamic() を使用します。
非推奨のエイリアス: parsejson()、toobject()、todynamic()
構文
parse_json(
json)
構文規則について詳しく知る。
パラメーター
件名 | タイプ | Required | 説明 |
---|---|---|---|
json | string |
✔️ | JSON として解析する JSON 形式の値 または dynamic プロパティ バッグの形式の文字列。 |
返品
dynamic
の値によって決定される 型のオブジェクト:
-
json が
dynamic
型の場合は、その値がそのまま使用されます。 -
json が
string
型で、適切に書式設定された JSON 文字列である場合は、文字列が解析され、生成された値が返されます。 -
json が
string
型であっても、適切に書式設定された JSON 文字列ではない場合は、戻り値は元のdynamic
値を保持するstring
型のオブジェクトになります。
例示
このセクションの例では、構文を使用して作業を開始する方法を示します。
期間メトリックの解析
次の例では、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
スロットの値を取得し、そこから 2 つのスロット 、duration.value
と duration.min
(それぞれ118.0
と 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
出力
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 |
入れ子になった JSON 解析
"スロット" の 1 つが別の JSON 文字列であるプロパティ バッグを JSON 文字列で記述するのは一般的なことです。
次に例を示します。
let d='{"a":123, "b":"{\\"c\\":456}"}';
print d
出力
print_0 |
---|
{"a":123, "b":"{"c":456}"} |
このような場合は、parse_json
を 2 回呼び出すだけでなく、2 回目の呼び出しで tostring
を使用する必要もあります。 それ以外の場合、parse_json
の 2 番目の呼び出しは、宣言された型が dynamic
であるため、入力を出力 as-isに渡すだけです。
let d='{"a":123, "b":"{\\"c\\":456}"}';
print d_b_c=parse_json(tostring(parse_json(d).b)).c
出力
d_b_c |
---|
456 |
関連するコンテンツ
- parse 演算子
- bag_unpack プラグインの
- mv-expand 演算子 を する