如何保存JSON并访问对象

时间:2018-12-02 13:31:21

标签: javascript node.js mqtt

我目前正在使用MQTT pub / sub,每当一个主题发布时,我都会收到一条消息,并且我收到的消息是并且可能随主题而变化。

收到的JSON已分配给消息

client.on('message', function (topic, message)
 { cmd: 'set', reqid: 'string', objects: [ { type: 'devices', data: ["tring"], execution: {"command": "OnOff", "params": { "on": true }} } ] }

我想将JSON保存在变量中并从中访问对象。

enter image description here

JSON是字符串,并且每当我尝试访问(message.cmd)之类的对象时,它都会显示“未定义”

3 个答案:

答案 0 :(得分:0)

尝试这种方式

var data = JSON.parse(strData);  // strData is what you got in response. 
console.log(data);  

更新

我检查了您的JSON,发现该问题出现在JSON引号中。如果您可以更新响应,只需将res设置为此。

{
  "cmd":"set",
  "reqid":"string",
  "objects":[
    {
      "type":"devices",
      "data":["string"],
    "execution":{
      "command":"OnOff",
      "params":{
      "on":true
    }
   }
  }
 ]
}

然后,您也不需要parse数据。您可以自己直接访问对象。

console.log("Parse data is :::",txt.cmd);

Image

答案 1 :(得分:0)

要将JSON字符串转换为对象,请使用

var recObject = JSON.parse(stringJson);

要将其转换回字符串,请使用

var jsonStr = JSON.stringify(recObject);

答案 2 :(得分:0)

借助JSON.parse()

var data = JSON.parse(stringData);
console.log(data);