javascript - node-red 将 json 字符串解析为 msg.payload

标签 javascript json string split node-red

菜鸟问题

我正在使用 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 节点运行消息。

enter image description here

这将解析字符串并生成适当的 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/

相关文章:

c++ - 使用getch后如何在另一个字符串的末尾连接一个字符串

javascript - 删除字符串中的空格

javascript - 根据给定条件创建嵌套的 json 对象

javascript - 将参数传递给 React 中的事件处理程序或回调

Javascript 翻转/镜像图像

json - 多个 map[string] 接口(interface)并将它们映射到多个 json 文件 GOLANG

json - 如何将 "push"一个 json 对象转换为 Go 中的数组?

javascript - 如果 src 是 http ://without link,则隐藏 iframe

javascript - 如何使用 JavaScript .forEach 获取迭代 JSON 对象和 JSON 数组

python - 类型错误:在字符串格式化期间并非所有参数都被转换