如何将对象的 JSON 数组转换为 Kusto 表?

3 azure azure-log-analytics azure-data-explorer

我有一个从服务器获取的 JSON 模式,我需要将此 JSON 转换为日志分析查询语言表,并使用该表与另一个表进行连接。

JSON 具有以下架构:

[{
   "X": "xyz",
   "Y": "xyz",
   "Z": "xyz",
   "prop1": "value1",
   "prop2": "value2",
   "prop3": "value3"
}, {
     "X": "xyz",
     "Y": "xyz",
     "Z": "xyz",
     "prop1": "value1",
     "prop2": "value2",
     "prop3": "value3"
}]
Run Code Online (Sandbox Code Playgroud)

我试过这个:

let table = todynamic('[{
  "X": "xyz",
  "Y": "xyz",
  "Z": "xyz",
  "prop1": "value1",
  "prop2": "value2", 
  "prop3": "value3"
}, {
  "X": "xyz",
  "Y": "xyz",
  "Z": "xyz",
  "prop1": "value1",
  "prop2": "value2",
  "prop3": "value3"
]');
Run Code Online (Sandbox Code Playgroud)

但这不会将 JSON 转换为可用于与其他表连接的内容。

任何帮助将不胜感激。

Yon*_*i L 8

尝试使用printdynamic

print myDynamicValue = dynamic([{
   "X": "xyz",
   "Y": "xyz",
   "Z": "xyz",
   "prop1": "value1",
   "prop2": "value2",
   "prop3": "value3"
}, {
   "X": "xyz",
   "Y": "xyz",
   "Z": "xyz",
   "prop1": "value1",
   "prop2": "value2",
   "prop3": "value3"
}])
| mvexpand myDynamicValue // this line is just an example
Run Code Online (Sandbox Code Playgroud)

更新(基于评论中的问题)

let result = 
print myDynamicValue = dynamic(
[
    { "X": "xyz", "Y": "xyz", "Z": "xyz", "prop1": "value1", "prop2": "value2", "prop3": "value3" }, 
    { "X": "xyz", "Y": "xyz", "Z": "xyz", "prop1": "value1", "prop2": "value2", "prop3": "value3" }
]) 
| mvexpand myDynamicValue 
| evaluate bag_unpack(myDynamicValue);
result
Run Code Online (Sandbox Code Playgroud)

  • 数组也可以“mv-expand”,是的。例如: ```print myDynamicValue =dynamic( [{ "item": { "prop1": "value1", "prop2": "value2" } }, { "item": [{ "prop1": "value1" , "prop2": "value2" }] }, { "item": [{ "prop1": "value1", "prop2": "value2" }, { "prop1": "value1", "prop2": "值2" }] }]) | mvexpand myDynamicValue | mvexpand myDynamicValue | mvexpand myDynamicValue mv-展开 myDynamicValue.item | 评估 bag_unpack(myDynamicValue_item) | 项目离开 myDynamicValue``` (2认同)