如何从ARG返回的列中提取所有子键生成字符串数组?
ARG提取嵌套JSON子键并生成新列的实现
这个需求完全可以实现,通过ARG的内置函数组合就能完成:
- 先用
dynamic()把JSON字符串解析为可操作的动态对象 - 用
bag_keys()提取顶层对象的所有键(比如示例里的a、b) - 借助
mv-apply遍历这些顶层键,提取每个顶层对象下的子键,最后聚合为数组
以下是具体的查询示例:
datatable(json_data:string) [ '{ "a": { "key1": ["text1", "text2"] }, "b": { "key2": ["text1", "text2"] } }' ] | extend json_obj = dynamic(json_data) | extend top_keys = bag_keys(json_obj) | mv-apply top_key = top_keys on ( extend sub_key = bag_keys(json_obj[top_key]) | summarize all_sub_keys = make_list(sub_key) ) | project json_data, all_sub_keys
执行上述查询后,all_sub_keys列会返回["key1", "key2"],完全匹配你想要的结果。
内容的提问来源于stack exchange,提问作者Ace
相关产品推荐
相关产品推荐

