【发布时间】:2018-08-22 10:49:49
【问题描述】:
我正在从 MQTT 服务器接收数据,该服务器会在一段时间后向我提供数据。接收到的数据是 JSON 对象的形式。我想存储我获得的数据的值,然后将其传递给我的数据库。但我在访问其密钥时遇到错误。
这是获取 JSON 数据的函数。
function mqtt_messsageReceived(topic, message, packet) {
if(message !== null && message !== undefined )
{
var myMessages = message;
console.log('Messages are '+ myMessages);
}
};
这是我的控制台日志 JSON 数据。
Messages are {"Temp":26.50,"Door":1,"Fan1":0,"Fan2":0,"Time":"22-8-2018 16:05","mac":"5ccf7f5a4ba4"}
我想从此 JSON 对象访问 Temp。
我已经尝试过:
console.log('Temp is '+myMessages.Temp);
但它只会给我一个错误 - 温度未定义。 我尝试过很多方法,其中一种方法是使用 Object.values
var myMessages = Object.values(message);
我得到的只是一些随机数
My Messages are 123,34,84,101,109,112,34,58,50,52,46,53,48,44,34,68,111,111,114,34,58,49,44,34,70,97,110,49,34,58,48,44,34,70,97,110,50,34,58,49,44,34,84,105,109,101,34,58,34,50,50,45,56,45,50,48,49,56,32,49,54,58,49,54,34,44,34,109,97,99,34,58,34,53,99,99,102,55,102,53,97,52,98,97,52,34,125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
任何人都可以在这里帮忙吗?
【问题讨论】:
-
@jonatjano 我找到了解决方案。正在接收的 JSON 有一些隐藏的特殊字符,必须清除这些字符。并且没有 JSON.parse 正常工作。我能够得到 obj.Temp 和其他值。
-
我指出它是因为在你的问题中没有可见的调用 It 所以我什至不确定你以前在某个地方调用过它,下次别忘了包括它,好像 @JasminMistry 做了相同的假设
标签: javascript json node.js mqtt