如何选择json字符串从一个动态的冷在库斯托?



我的表的动态数据类型列有时有json以外的值,但是'evaluate bag_unpack'命令由于这些原因无法运行。

是否有一种方法,我只能从col中选择正确格式的json字符串,并将其发送到'评估bag_unpack',同时忽略其余的垃圾值。

样本数据:

{"message":"msg1","code":"1"}
<html><body>Server Down</body></html>
{"message":"msg2","code":2"}
{"message":"msg3","code":"3"}

bag_keys()在本例中用于确定已解析的日志是否为有效的JSON

datatable(log_id:int, log:dynamic)
[
1 ,'{"message":"msg1","code":"1"}'
,2 ,'<html><body>Server Down</body></html>'
,3 ,'{"message":"msg2","code":2"}'
,4 ,'{"message":"msg3","code":"3"}'
]
| extend parsed_log = todynamic(tostring(log))
| extend valid_json = iff(isnotempty(bag_keys(parsed_log)), parsed_log, dynamic(null))
| evaluate bag_unpack(valid_json)
<表类>log_id日志parsed_log代码消息tbody><<tr>1{"message"msg1","code":"1"}{"message"msg1","code":"1"}1msg12服务器下服务器下3{"message"msg2","code": 2"}{"message"msg2","code": 2"}4{"message"msg3","code":"3"}{"message"msg3","code":"3"}3msg3

最新更新