简体   繁体   English

如何从节点红色的json中提取多个值

[英]How to extract multiple value from a json in node red

I am trying to extract multiple values from multiple JSON arrays to create a pie chart.我正在尝试从多个 JSON 数组中提取多个值来创建饼图。

The below function only able to get a single value but what I want is to get all values from those arrays for example, tag should return "untagged","HK_Online","HK_Order/Change address" but it only return "HK_Online" at the moment.下面的函数只能获取一个值,但我想要的是从这些数组中获取所有值,例如,标签应该返回“untagged”、“HK_Online”、“HK_Order/Change address”但它只返回“HK_Online”在此时此刻。

My function node我的功能节点

var value = msg.payload.lines[0][1].value;
var tag = msg.payload.lines[1][0].value;

msg.topic = tag;
msg.payload = value;
return msg;

JSON data JSON 数据

{
  "axes": {
    "x": [
      { "name": "Tag","type": "string" },
      { "name": "Total","type": "number" },
      { "name": "Percentage","type": "percent" },
      { "name": "Delta", "type": "delta" }
    ]
  },
  "lines": [
    [
      { "type": "string","value": "Untagged" },
      { "type": "number","value": 1 },
      { "type": "percent","value": 20 },
      { "type": "delta", "value": 100 }
    ],
    [
      { "type": "string","value": "HK_Online" },
      { "type": "number","value": 4 },
      { "type": "percent","value": 80 },
      { "type": "delta","value": 100 }
    ],
    [
      { "type": "string","value": "HK_Order/Change address" },
      { "type": "number","value": 1 },
      { "type": "percent","value": 20 },
      { "type": "delta","value": 100 }
    ]
  ]
}

You can use map method to create new array from the lines array您可以使用 map 方法从 lines 数组创建新数组

let lines = msg.payload.lines

let tag = lines.map(item => item[0].value)
let value = lines.map(item => item[1].value)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM