parse_json()

string を JSON 値として解釈し、値を dynamic として返します。 可能な場合、値を関連するデータ型に変換します。 データ型変換なしで厳密な解析を行う場合は、 extract() または extract_json() 関数を 使用します。

JSON 複合オブジェクトの複数の要素を抽出する必要がある場合は 、extract_json() 関数に対して parse_json() 関数を使用することをお勧めします。 可能な場合は dynamic() を 使用します。

非推奨のエイリアス: parsejson()、toobject()、todynamic()

構文

parse_json(json)

構文規則について詳しく知る。

パラメーター

名前 必須 説明
json string ✔️ JSON 形式の 値または JSON として解析する 動的 プロパティ バッグの形式の文字列。

戻り値

json の値によって決定される dynamic 型のオブジェクト:

次の例では、context_custom_metricsstring である場合、次のようになります。

{"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と (118.0duration.min110.0をそれぞれ取得します) を取得します。

T
| extend d=parse_json(context_custom_metrics) 
| extend duration_value=d.duration.value, duration_min=d["duration"]["min"]

メモ

"スロット" の 1 つが別の JSON 文字列であるプロパティ バッグを JSON 文字列で記述するのは一般的なことです。

次に例を示します。

let d='{"a":123, "b":"{\\"c\\":456}"}';
print d

このような場合は、parse_json を 2 回呼び出すだけでなく、2 回目の呼び出しで tostring を使用する必要もあります。 そうでない場合は、宣言された型が dynamic であるため、parse_json の 2 回目の呼び出しでは入力をそのまま出力に渡すだけです。

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