• V
 

转换到/从 JSON

问题

您想要在 JSON 字符串和它所表示的 JavaScript 对象之间转换消息属性。

解决方案

JSON 节点可以用于在这两种格式之间转换。

示例

[{"id":"634256b7.2d6818","type":"inject","z":"64133d39.bb0394","name":"JSON 字符串","topic":"","payload":"{\"a\":1}","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":110,"y":80,"wires":[["a2fe0fc8.095e1"]]},{"id":"a2fe0fc8.095e1","type":"json","z":"64133d39.bb0394","name":"","property":"payload","action":"","pretty":false,"x":270,"y":80,"wires":[["9a4ce2b8.47698"]]},{"id":"9a4ce2b8.47698","type":"debug","z":"64133d39.bb0394","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":430,"y":80,"wires":[]},{"id":"80032e2.7c92cd","type":"inject","z":"64133d39.bb0394","name":"对象","topic":"","payload":"{\"a\":1}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":90,"y":120,"wires":[["cd40a0f4.4f5ac"]]},{"id":"cd40a0f4.4f5ac","type":"json","z":"64133d39.bb0394","name":"","property":"payload","action":"","pretty":false,"x":270,"y":120,"wires":[["478b4106.4fd7c"]]},{"id":"478b4106.4fd7c","type":"debug","z":"64133d39.bb0394","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":430,"y":120,"wires":[]}]

讨论

在这个例子中,第一个流注入了 JSON 字符串 '{"a":1}',该字符串通过 JSON 节点转换为等效的 JavaScript 对象。

第二个流执行反向操作,注入对象 { a: 1 } 并将其转换为 JSON。

JSON 默认会检测它正在被赋予的内容以进行转换。它还可以配置以确保属性为给定类型。例如,如果您的流可以接收 JSON 或一个对象,JSON 节点可以配置为确保属性是一个对象。