WeStudio技术社区

 找回密码
 立即注册

快捷登录

QQ登录

只需一步,快速开始

查看: 580|回复: 0

MQTT控件如何上报JSON数据?

[复制链接]

99

主题

142

帖子

1046

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1046
发表于 2022-6-29 10:16:48 | 显示全部楼层 |阅读模式
本帖最后由 hixon 于 2022-6-29 10:36 编辑

在进行MQTT通讯时,如何使用JSON数据格式上报设备端的信息?

mqtt_request_json.png
比如我们有上面这样格式的数据要上报给服务器,我们可以先定义一个JavaScript对象,然后将对象转换为JSON格式的字符串并通过mqtt控件对象来发布。至于为什么我们要先定义一个对象再转换成JSON字符串呢?因为如果不定义对象其实也是能实现功能,问题是自己通过字符串拼接比较麻烦而且也容易出错。在WeStudio里面我们提供了对象与JSON字符串的转换方法 util.cast.objectToJson(object)。需要注意的是把JSON格式定义成对象时,需要把JSON里面的键值的引号去掉。
  1. ui.iot.publish_btn.onRelease = function() {
  2.     var obj = {
  3.         id : "123",
  4.         version:"1.0",
  5.         sys:{
  6.             ack:0
  7.         },
  8.         params : {
  9.             configScope:"device",  
  10.             getType:"content"
  11.         },
  12.         method:"thing.config.log.get"
  13.     };
  14.     obj.id = device.io.rtc.getTime('ms'); // 取开机的毫秒数做为消息的唯一ID
  15.     var topic = '/sys/a1Q3XZ20KLS2/DxM1000/thing/config/log/get';
  16.     var payload = util.cast.objectToJson(obj); // 将JavaScript对象转换成JSON格式的字符串
  17.     var qos = 0;
  18.     ui.iot.mqtt.publish(topic, payload, qos); // 上报数据给MQTT服务器
  19. };
复制代码
publish_message.png

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|物一世(北京)科技有限公司 ( 京ICP备20025895 )

GMT+8, 2024-3-29 19:47 , Processed in 0.012194 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表