[英]Can not parse JSON from MQTT Message in Broker
我正在使用 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
行收到錯誤
語法錯誤:position 2 中的 JSON 中的意外令牌 c
我應該如何正確解析此消息?
您的項目似乎正在使用 MongoDB。
我不知道server.emit()
端的代碼是什么,因為您沒有提供它。
但是在從 MongoDB 獲取數據之前嘗試傳入.lean()
將解決您的問題。
像這樣的東西:
const leanDoc = await MyModel.findOne().lean();
這可能有助於將來的某些人將代碼更新為
server.on('published', (packet, client) => {
let { payload } = packet;
if(payload) {
let payloadString = payload.toString();
try {
let payloadJson = JSON.parse(payloadString)
console.log(payloadJson)
} catch (error) {
console.log("Invalid json data")
}
}
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.