【问题标题】:How do i Access the keys of a JSON Object in Javascript? [duplicate]如何在 Javascript 中访问 JSON 对象的键? [复制]
【发布时间】: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


【解决方案1】:

你可以使用 JSON.parse:

console.log(JSON.parse(myMessages)["Temp"]);

【讨论】:

  • myMessages.TempmyMessages["Temp"] 是等价的。如果一个是undefined,那么另一个也是。
  • 一般来说,您应该解释为什么您推荐的更改将解决问题,而不仅仅是发布人们可以用来发现差异的代码。不幸的是,这里的区别并不能解决问题。
  • 它仍在记录“未定义”。两种方法我都试过了。甚至将其存储在我尝试过的单独变量中。
猜你喜欢
  • 2015-04-20
  • 2022-07-06
  • 2014-07-16
  • 1970-01-01
  • 1970-01-01
  • 2017-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多