菜鸟问题
我正在使用 snmp 函数通过 oid 列表收集数据。 我已提取数据并使用 json 函数将数据解析为如下所示的 json 字符串。
msg.payload : string[81]
"[{"oid":"1.3.6.1.4.1.38783.3.3.1.1.1.0","type":2,"value":53800,"tstr":"Integer"}]"
我正在尝试编写一个函数以从该字符串中删除 "value":53800
并将其输出到 msg.payload
中。
我试过下面但它返回
"TypeError: Cannot assign to read only property
'_msgid'
of"value":53700,"tstr":"Integer"}]"
var msg = msg.payload;
var value = msg.substr(49,62);
return value;
最佳答案
不要尝试像那样拆分字符串,如果值的长度发生变化,很容易出错。
而是在函数节点之前通过 JSON 节点运行消息。
这将解析字符串并生成适当的 JSON 对象。
然后您可以这样访问值字段:
var value = msg.payload[0].value;
msg.payload = value;
return msg;
Cannot assign to read only property
错误是因为您从函数返回了一个字符串。您需要返回消息 JSON 对象而不是字符串。我的示例将 msg.payload
设置为所需的值。
关于javascript - node-red 将 json 字符串解析为 msg.payload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44945068/