库斯托 | Azure 数据资源管理器 | extractjson() returns 没有
Kusto | Azure Data Explorer | extractjson() returns nothing
我正在尝试使用 Kusto/Azure Data Explorer 中的 extractjson() 函数。我在 MS 文档中读到,当您需要提取 JSON 复合对象的多个元素时,最好使用 parse_json(),但在我的场景中,我只需要从JSON,所以我假设相反最好使用 extractjson()。这是一个示例 table 来说明:
let T = datatable (myObject:string)[
'[{"Id":1,"Value":"light saber"}]',
'[{"Id":2,"Value":"jedi beacon"}]'
];
T
| extend JediTools = extractjson("$.Value", myObject)
在最后一行,我试图扩展一个列以包含提取的 json 值,但我什么也没得到:
预期结果:
函数必须找到“值”,因为它不会抛出错误,但是为什么应该显示提取值的列是空白的?我也尝试了以下但结果是一样的:
| extend JediTools = extractjson("$.Value", myObject, typeof(string))
| extend JediTools = tostring(extractjson("$.Value", myObject))
它实际上没有找到“值”属性,因为它包含在一个数组中。当找不到 json 属性 时,您会返回一个空值,而不是错误。因为你有一个数组,你需要“mv-expand”它:
let T = datatable (myObject:string)[
'[{"Id":1,"Value":"light saber"}]',
'[{"Id":2,"Value":"jedi beacon"}]'
];
T
| extend myObject = todynamic(myObject)
| mv-expand myObject
| extend JediTools = myObject.Value
我正在尝试使用 Kusto/Azure Data Explorer 中的 extractjson() 函数。我在 MS 文档中读到,当您需要提取 JSON 复合对象的多个元素时,最好使用 parse_json(),但在我的场景中,我只需要从JSON,所以我假设相反最好使用 extractjson()。这是一个示例 table 来说明:
let T = datatable (myObject:string)[
'[{"Id":1,"Value":"light saber"}]',
'[{"Id":2,"Value":"jedi beacon"}]'
];
T
| extend JediTools = extractjson("$.Value", myObject)
在最后一行,我试图扩展一个列以包含提取的 json 值,但我什么也没得到:
预期结果:
函数必须找到“值”,因为它不会抛出错误,但是为什么应该显示提取值的列是空白的?我也尝试了以下但结果是一样的:
| extend JediTools = extractjson("$.Value", myObject, typeof(string))
| extend JediTools = tostring(extractjson("$.Value", myObject))
它实际上没有找到“值”属性,因为它包含在一个数组中。当找不到 json 属性 时,您会返回一个空值,而不是错误。因为你有一个数组,你需要“mv-expand”它:
let T = datatable (myObject:string)[
'[{"Id":1,"Value":"light saber"}]',
'[{"Id":2,"Value":"jedi beacon"}]'
];
T
| extend myObject = todynamic(myObject)
| mv-expand myObject
| extend JediTools = myObject.Value