Javascript 当我尝试从mqtt通道获取纬度和经度值时,我获取NaN值?我试图将它们解析为float,但最终仍然得到一个NaN值

Javascript 当我尝试从mqtt通道获取纬度和经度值时,我获取NaN值?我试图将它们解析为float,但最终仍然得到一个NaN值,javascript,html,parsing,mqtt,esp8266,Javascript,Html,Parsing,Mqtt,Esp8266,我试着将我的GPS经纬度解析为浮动,这样我的谷歌地图就可以读取,但它只返回NaN。 我通过mqtt通道从arduino以浮点形式发送数据,我的html代码正在从mqtt通道读取数据。是否有人知道为什么失败 window.initialize=初始化; var redraw=functionpayload{ lat=parseFloatpayload.message.lat; lng=parseFloatpayload.message.lng; console.loglng; map.setCen

我试着将我的GPS经纬度解析为浮动,这样我的谷歌地图就可以读取,但它只返回NaN。 我通过mqtt通道从arduino以浮点形式发送数据,我的html代码正在从mqtt通道读取数据。是否有人知道为什么失败

window.initialize=初始化; var redraw=functionpayload{ lat=parseFloatpayload.message.lat; lng=parseFloatpayload.message.lng; console.loglng; map.setCenter{lat:59.3559,lng:lng,alt:0}; 标记设置位置{lat:59.3559,lng:lng,alt:0}; lineCoords.pushnewgoogle.maps.LatLng59.3559,lng;

正如我在评论中所说,消息负载是以字符串形式接收的MQTT消息只是字节数组,由用户将其转换为任何更高级别的格式

如果要将字符串{lng:18.873501}用作JSON对象{lng:18.873501},需要首先解析它

由于您尚未提供onMessageArrived函数,因此很难建议如何正确修复此问题,但您可以执行以下操作:

var location = JSON.parse(message.payload);
var lat = location.lat;
var lng = location.lng;

让我们看看你的payload.message!为什么要使用两次解析lat long?请编辑你的标题。这对想搜索你的问题的人没有帮助。payload.message.lat和.lng甚至都不是数字…或者是未定义的,或者是一个对象…如果你将payload.message输出到浏览器,它看起来像什么er工具控制台的问题是显示您的onMessageArrived函数,这样我们就可以确切地看到您是如何处理传入消息的。最可能的原因是负载仍然是字符串,需要解析为JSON对象