首页 > 解决方案 > Node-RED 解析 json

问题描述

我正在尝试提取值“533”

{
  "d": {
    "ItemValue_1": 533
   },
   "ts": "2021-01-20T10:59:41.958591"
}

这不起作用

var ItemValue_1 = msg.payload.ItemValue_1;
msg.payload = ItemValue_1;
return msg;

我的结果不成功

标签: jsonnode-red

解决方案


更好的方法如下:

在函数节点之前添加一个 JSON 节点,这会将一个字符串负载转换为一个 JSON 对象(假设该字符串实际上代表一个 JSON 对象)。

然后,如果您使用的是功能节点,请执行以下操作:

msg.payload = msg.payload.d.ItemValue_1;
return msg;

像您在答案中所做的那样创建一个新对象是不好的做法,因为它会丢弃以后可能需要附加到原始对象的任何元数据。

与其使用功能节点,不如使用更改节点和移动模式msg.payload.d.ItemValue_1msg.payload


推荐阅读