Arrays 在Azure Stream Analytics中提取属性内的数组
到目前为止,我还没有通过流分析作业从JSON字符串中以宽格式提取某些值 JSON具有以下格式:Arrays 在Azure Stream Analytics中提取属性内的数组,arrays,json,azure,azure-stream-analytics,stream-analytics,Arrays,Json,Azure,Azure Stream Analytics,Stream Analytics,到目前为止,我还没有通过流分析作业从JSON字符串中以宽格式提取某些值 JSON具有以下格式: {"devicename":"demo","msgtime":"2018-04-13T11:00:00.0000000Z", "payload":[{"Sensor":"one","Value":1.817,"Unit":"W"}, {"Sensor":"two","Value":0.481,"Unit":"W"}, {"Sensor":"three","Value":0.153,"Unit":"
{"devicename":"demo","msgtime":"2018-04-13T11:00:00.0000000Z",
"payload":[{"Sensor":"one","Value":1.817,"Unit":"W"},
{"Sensor":"two","Value":0.481,"Unit":"W"},
{"Sensor":"three","Value":0.153,"Unit":"W"}]}}
name one two three
demo 1.817 0.481 0.153
… … … …
我正在尝试以以下格式获取它:
{"devicename":"demo","msgtime":"2018-04-13T11:00:00.0000000Z",
"payload":[{"Sensor":"one","Value":1.817,"Unit":"W"},
{"Sensor":"two","Value":0.481,"Unit":"W"},
{"Sensor":"three","Value":0.153,"Unit":"W"}]}}
name one two three
demo 1.817 0.481 0.153
… … … …
我尝试使用“交叉应用GetPropertyValues(input)”获取值,但无法获取广泛格式的值。有一篇博客文章描述了您的场景的查询模式:
.尝试下面的代码
SELECT
localInput.devicename,
udf.getValue('one', localInput.payload) as One,
udf.getValue('two', localInput.payload) as Two,
udf.getValue('three', localInput.payload) as Three
FROM localInput;
function main(identifier, arr) {
var result = null;
if (Object.prototype.toString.call(arr) == "[object Array]") {
for (i = 0; i < arr.length; i++) {
if (arr[i].type == identifier) {
result = arr[i].value;
}
}
}
return result;
}
选择
localInput.devicename,
udf.getValue('one',localInput.payload)作为一个,
udf.getValue('two',localInput.payload)作为两个,
udf.getValue('three',localInput.payload)为三
从本地输入;
主功能(标识符、arr){
var结果=null;
if(Object.prototype.toString.call(arr)=“[Object Array]”){
对于(i=0;i