d***@126.com
d***@126.com
  • 发布:2022-07-11 10:17
  • 更新:2022-07-11 20:10
  • 阅读:198

初学者小白问题,有关json,字符串之间的转换

分类:uni-app

我是搞单片机开发的,想自己搞一个mqtt 的app 和网页简易控制,现在直接导入插件项目的mqtt 示例,现在碰到了一个小问题,我想要发布一个主题,消息格式应该类似下面这种字符串,应该是json格式的:
{"LED1":1,"LED2":0,"LED3":0,"LED4":1,"ALARM":3} ,
这种json 格式,分别代表4个灯的亮灭和蜂鸣器的鸣叫次数,我现在在变量里面定义了 led,send_dat..这样几个变量,
led : [0,0,0,0],
send_data:{
"LED1" :1,
"LED2" :1,
"LED3" :1,
"LED4" :1,
"ALARM":3
},
第一个问题: 我怎样把 led 数组里面的四个变量和 send_data 里面的 四个数的值 相关联或者对应。
第二个问题:我如何把这些变量转换成对应的字符串,并放入到我的发布函数里面。
现在自己的写法是这样:
if (this.sendMassage != '') {
var send=''
send = JSON.stringify(send_data)
this.client.publish(this.subTopic,send.toString(), error => {
console.log(error || '消息发布成功');
this.showToast('消息发布成功', 1000, 'success')
});
} else {
this.showToast('发布消息为空', 1000)
}
以前搞单片机里面是用的sprintf 函数,一到这里就晕了,基本知识不具备,各位大佬帮忙看看,我应该怎么弄,或者有什么知识需要学习一下的,拜谢。

2022-07-11 10:17 负责人:无 分享
已邀请:
DCloud_UNI_WZF

DCloud_UNI_WZF

映射关系可以创建一个 obj 或者 map 存储,类似这样:

const indexToKey = {  
  0: "LED1",  
  1: "LED2",  
  2: "LED3",  
  3: "LED4"  
}  
const led = [0, 0, 0, 0]  
const send_data = {  
  "LED1": 1,  
  "LED2": 2,  
  "LED3": 3,  
  "LED4": 4,  
}  

for(let i = 0;i<led.length;i++){  
  console.log('当前 led 下标为',i)  
  console.log('对应 send_data key 值为',indexToKey[i])  
  console.log('对应 send_data value 值为',send_data[indexToKey[i]])  
}

JSON.stringify 方法就可以把 JavaScript 对象转为 字符串,所以不用再 toString 一下 文档
不知道是否可以解决你的问题,有问题的话再回复即可

该问题目前已经被锁定, 无法添加新回复