Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 在Azure Stream Analytics中提取属性内的数组_Arrays_Json_Azure_Azure Stream Analytics_Stream Analytics - Fatal编程技术网

Arrays 在Azure Stream Analytics中提取属性内的数组

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":"

到目前为止,我还没有通过流分析作业从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":"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