【JavaScript】MQTTX-脚本-自定义函数-payload过滤

/**
* @description: 处理JSON报文中的"name"和"val"字段
* @param {any} value - 报文数据
* @param {string} msgType - 消息类型,值为'received'或'publish'
* @param {number} index - 消息索引,仅在用于发布消息且启用定时消息时有效
* @return {any} - 处理后的数据
*/
function handlePayload(value, msgType, index) {
    
    
  value = JSON.parse(value);
  if (msgType) {
    
    
    // 处理接收到的消息
    if (value && value.body) {
    
    
      const result = value.body.map(item => {
    
    
        let res  = {
    
    
          name: item.name,
          val: item.val
        };
        return item.name+" = "+item.val;
      });
      let str = value.token+","+JSON.stringify(result,null, 0);
      str = str.replace(/ /g, '\t').replace(/,/g, '\n').replace(/[\[\]\"]/g, '');
      return str;
    }
  }
  // 如果是发布消息或其他情况,原样返回
  return value;
}

// 执行处理函数
execute(handlePayload);

输入

{
    
    
	"token":	"123",
	"timestamp":	"2023-10-24T13:33:35.746+0800",
	"body":	[{
    
    
			"name":	"UA",
			"val":	"0.0"
		}, {
    
    
			"name":	"UB",
			"val":	"0.0"
		}]
}

输出

123
UA	=	0.0
UB	=	0.0

猜你喜欢

转载自blog.csdn.net/qq_43577613/article/details/134027669