如何解决流分析解析json,同一键可以是数组,也可以不是
将XML转换为JSON并发送到EventHub,然后由Stream Analytics处理它。 问题是,当XML使用相同的标签名称时,它会转换为JSON端的列表,但是当只有一个标签未转换为列表时。因此,同一标签可以是数组,也可以不是数组。
例如: 我可以收到:
{
"k1": 123,"k2": {
"l1": 2,"l2": 12
}
}
或:
{
"k1": 123,"k2": [
{
"l1": 2,"l2": 12
},{
"l1": 3,"l2": 34
}
]
}
我可以轻松地分别处理第一种情况和第二种情况,但是我不知道如何同时处理这两种情况,
解决方法
是的。如果您知道如何分别处理每个案例,那么我将建议您在分别对待它们之前,如何区分这两个案例。
本质上,想法是检查字段是否为数组。我所做的是,如果所传递的对象是数组,我在javascript中编写了一个UDF函数,该函数返回“ true” /“ false”:
function UDFSample(arg1) {
'use strict';
var isArray = Array.isArray(arg1);
return isArray.toString();
}
以下是在组查询中如何使用它的方法:
with test as (SELECT Document from input where UDF.IsArray(k2) = 'true')
现在“测试”包含可以视为数组的项目。对于k2只是一个对象的情况,您也可以这样做。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。