MQTT控件如何上报JSON数据?
本帖最后由 hixon 于 2022-6-29 10:36 编辑在进行MQTT通讯时,如何使用JSON数据格式上报设备端的信息?
比如我们有上面这样格式的数据要上报给服务器,我们可以先定义一个JavaScript对象,然后将对象转换为JSON格式的字符串并通过mqtt控件对象来发布。至于为什么我们要先定义一个对象再转换成JSON字符串呢?因为如果不定义对象其实也是能实现功能,问题是自己通过字符串拼接比较麻烦而且也容易出错。在WeStudio里面我们提供了对象与JSON字符串的转换方法 util.cast.objectToJson(object)。需要注意的是把JSON格式定义成对象时,需要把JSON里面的键值的引号去掉。
ui.iot.publish_btn.onRelease = function() {
var obj = {
id : "123",
version:"1.0",
sys:{
ack:0
},
params : {
configScope:"device",
getType:"content"
},
method:"thing.config.log.get"
};
obj.id = device.io.rtc.getTime('ms'); // 取开机的毫秒数做为消息的唯一ID
var topic = '/sys/a1Q3XZ20KLS2/DxM1000/thing/config/log/get';
var payload = util.cast.objectToJson(obj); // 将JavaScript对象转换成JSON格式的字符串
var qos = 0;
ui.iot.mqtt.publish(topic, payload, qos); // 上报数据给MQTT服务器
};
页:
[1]