无法从Broker中的MQTT消息解析JSON

时间:2020-04-19 07:04:51

标签: node.js json mqtt mosca

我正在使用Mosca构建MQTT服务器,并尝试将MQTT消息解析为JSON以用于数据库存储。

下面“已发布”回调中的代码

server.on('published', (packet, client) => {
    let { payload } = packet;
    if(payload) {
        let payloadString = payload.toString();
        let payloadJson = JSON.parse(payloadString);
        console.log(payloadJson)
    }
});

JSON字符串示例为:

{“ _ id”:“ 5e928105156c40000006f9e9”,“温度”:33,“湿度”:64.9}

但是我在第JSON.parse行中收到了错误消息

SyntaxError:JSON中位置2处的意外令牌c

我应该如何正确解析此消息?

1 个答案:

答案 0 :(得分:0)

似乎您正在为项目使用MongoDB。

我不知道server.emit()端的代码是什么,因为您没有提供它。

但是尝试从MongoDB获取数据之前传递.lean()可以解决您的问题。

类似这样的东西:

const leanDoc = await MyModel.findOne().lean();

也请检查一下:https://mongoosejs.com/docs/tutorials/lean.html