我正在从事一个涉及MQTT的项目,该项目是我所选择的一个主题,以返回uint8array有效负载(我正在使用ngx-mqtt)。
this.mqttService.observe('object1/data/').subscribe((message: IMqttMessage) => {
const plainMessage = message.payload.toString();
let updates = JSON.parse(plainMessage);
this.dataService.updateMeasurements(updates);
});
dataService.updateMeasurements
期望类型为MeasurementUpdate
且数组为any[]
的数组不起作用。如何将任何数组转换为我的特定数组?
答案 0 :(得分:0)
对于uint8array
,您必须逐字符转换字符串,然后解析为JSON
例如(假设message.payload是uint8Array
):
var plainMessage = "";
for (var i = 0; i < message.payload.length; i++) {
plainMessage += String.fromCharCode(parseInt(message.payload[i]));
}
let updates = JSON.parse(plainMessage)
我现在正在离开计算机,因此请注意格式和语法。