分享一段处理API返回JSON数据的代码,使其更符合明道云体质

问答  收藏
3 / 143

在[之前的帖子中](字段事件调用 API,返回的对象数组应该怎么在子表中呈现 | HAP 社区 (mingdao.net)),发现即使按照规则很规范地设置了字段映射之后,返回的多组数据还是不能映射到子表中。
问了几位资深的明道云技术人员后,发现是返回的数组中格式不规范,于是设计了以下 JavaScript 代码:

function convertToArrayOfObjects(obj) {
 Object.keys(obj).forEach(key => {
   if (obj[key] !== null && typeof obj[key] === 'object' && !Array.isArray(obj[key])) {
     // 如果属性值是对象而不是数组,则将其转换为数组
     obj[key] = [obj[key]];
   } else if (Array.isArray(obj[key])) {
     // 如果属性值是数组,递归检查数组中的每个元素
     obj[key].forEach(element => {
       if (typeof element === 'object') {
         convertToArrayOfObjects(element);
       }
     });
   } else if (typeof obj[key] === 'object') {
     // 如果属性值是对象,递归检查该对象
     convertToArrayOfObjects(obj[key]);
   }
 });
}
// 示例JSON对象
const jsonString = input.str;
const jsonObject = JSON.parse(jsonString);
// 调用函数
convertToArrayOfObjects(jsonObject);
output =jsonObject;

这段代码可以将多维数组转换成对象数组,同时解决一些格式问题,希望有所帮助 😄 😄
image.png