关于json数据结构的转换,请教一下怎么把data1转成data2这种?

迎风inwind 2023-06-13 23:20:31

 

...全文
3060 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-06-13
精选
  • 打赏
  • 举报
回复
您的问题已经帮您同步至问答, 链接: https://ask.csdn.net/questions/7963793, 请您保持关注, 如果回答有帮助解决此问题, 麻烦您动动小手给相关的回答点赞, Ada会在评论区为您更新结题状态
Roc-xb 2023-06-14
  • 打赏
  • 举报
回复 1

var data1 = [{
    field1: '111',
    field2: '222',
    field3: '333',
    field4: [{
            field5: '555',
            field6: '666',
            field7: '777'
        },
        {
            field5: '5555',
            field6: '6666',
            field7: '7777'
        }
    ],
    field8: [{
            field9: '999',
            field10: '101010',
            field11: '111111'
        },
        {
            field9: '9999',
            field10: '10101010',
            field11: '11111111'
        },
    ]
}]


function transformData(data) {
    return data.map(function (item) {
        var newItem = {};
        for (var key in item) {
            if (Array.isArray(item[key])) {
                newItem[key] = '';
                var arr = item[key];
                var subItem = {};
                for (var i = 0; i < arr.length; i++) {
                    var subArr = arr[i];
                    for (var subKey in subArr) {
                        if (!subItem[subKey]) {
                            subItem[subKey] = [];
                        }
                        subItem[subKey].push({
                            name: subArr[subKey]
                        });
                    }
                }
                for (var subKey in subItem) {
                    newItem[subKey] = subItem[subKey];
                }
            } else if (typeof item[key] === 'object') {
                var subData = transformData([item[key]]);
                for (var subKey in subData[0]) {
                    newItem[subKey] = subData[0][subKey];
                }
            } else {
                newItem[key] = item[key];
            }
        }
        return newItem;
    });
}

console.log(JSON.stringify(transformData(data1)))
迎风inwind 2023-06-14
  • 举报
回复
@Roc-xb 谢谢

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧