【问题标题】:Node-RED parse jsonNode-RED 解析 json
【发布时间】:2021-01-20 08:24:27
【问题描述】:

我正在尝试提取值“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;

我的结果不成功

【问题讨论】:

  • 试试msg.payload.d.ItemValue_1
  • 可以给我完整的代码吗?我是红色节点的新手
  • 请先试一试,@ArunpandianM 的评论包括正确的对象路径到您想要的值,将其与您已有的进行比较。

标签: json node-red


【解决方案1】:

我能够自己解决,它有效。

sensorMeasurement=JSON.parse(msg.payload);
msg.payload=sensorMeasurement.d;
var msgout = {payload : msg.payload.ItemValue_1}
return msgout;

【讨论】:

    【解决方案2】:

    更好的方法如下:

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

    如果你使用的是功能节点,则如下:

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

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

    与其使用函数节点,不如使用更改节点和移动模式将msg.payload.d.ItemValue_1 转换为msg.payload 会更简洁

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-18
      • 1970-01-01
      • 1970-01-01
      • 2015-01-10
      • 2014-02-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多