我目前正在使用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保存在变量中并从中访问对象。
JSON是字符串,并且每当我尝试访问(message.cmd)之类的对象时,它都会显示“未定义”
答案 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);
答案 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);