假设我有以下JSON数据结构进入Stream Analytics(由IoT设备生成):
{
"user":"bob",
"messages":[
{
"mac":"AA:BB:CC:DD:EE:FF",
"data":[
{
"messagetype1":{
"param1":83,
"param2":82
},
"messagetype2":{
"param3":83,
"param4":82
}
}
]
}]
}
上面你可以看到数据数组包含命名对象。我需要存储对象名称以及其他参数。是否有内置函数来访问数组元素的对象名称? messagetype1和messagetype2就是例子。
例如,我想存储:
{ "user":"bob", "mac":"AA:BB:CC:DD:EE:FF", "type":"messagetype1", "param1":83}
{ "user":"bob", "mac":"AA:BB:CC:DD:EE:FF", "type":"messagetype1", "param2":82}
{ "user":"bob", "mac":"AA:BB:CC:DD:EE:FF", "type":"messagetype2", "param3":83}
{ "user":"bob", "mac":"AA:BB:CC:DD:EE:FF", "type":"messagetype2", "param4":82}
答案 0 :(得分:0)
处理此问题的最佳方法可能是使用JavaScript UDFs。
虽然通常可以通过Array绑定的Record和CROSS APPLY函数组合起来,但在您的情况下,并发症是解开不同的std::array
记录。您需要知道所有可能的messagetype*
名称的集合才能进行正确的查询。或者,您可以使用param*
,但不会使用所需的GetRecordProperties
结构,而是使用{ ... "param1":83}
结构。