你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问
https://docs.azure.cn
。
parse_json()
-
项目
-
将
string
解释为 JSON 值并以
dynamic
形式返回值。 如果可能,该值将转换为相关的
数据类型
。 对于没有数据类型转换的严格分析,请使用
extract()
或
extract_json()
函数。
如果需要提取 JSON 复合对象的多个元素,则最好使用 parse_json() 函数而不是
extract_json()
函数。 请尽可能使用
dynamic()
。
弃用的别名:parsejson()、toobject()、todynamic()
parse_json(
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
)。
| 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
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:https://aka.ms/ContentUserFeedback。
提交和查看相关反馈