hixon 发表于 2022-6-29 10:16:48

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]
查看完整版本: MQTT控件如何上报JSON数据?