|
本帖最后由 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服务器
- };
复制代码
|
|