如何从两个JSON数组提取元素生成扁平键值对列表?
JSON数组合并生成扁平列表解决方案
核心逻辑
- 从
fields数组提取所有label,作为最终扁平对象的键名 - 遍历
data数组的每一组数据,将数组元素与对应键名一一配对,转换为键值对对象 - 收集所有生成的扁平对象,形成最终列表
代码实现(以JavaScript为例)
// 示例输入JSON const inputJson = { fields: [ { label: "用户名" }, { label: "注册时间" }, { label: "会员等级" } ], data: [ ["user001", "2023-01-01", "VIP3"], ["user002", "2023-05-12", "VIP1"] ] }; // 转换函数 function generateFlatList(input) { // 提取字段键名 const fieldKeys = input.fields.map(item => item.label); // 转换data为扁平对象列表 return input.data.map(dataItem => { return dataItem.reduce((flatObj, value, idx) => { flatObj[fieldKeys[idx]] = value; return flatObj; }, {}); }); } // 获取结果 const result = generateFlatList(inputJson); console.log(result);
输出结果示例
[ {"用户名": "user001", "注册时间": "2023-01-01", "会员等级": "VIP3"}, {"用户名": "user002", "注册时间": "2023-05-12", "会员等级": "VIP1"} ]
注意事项
- 必须保证
fields的长度与data中每个子数组的长度一致,否则会出现键值对应错位或缺失 - 如果需要处理字段不匹配的场景,可以在
reduce中添加判断,给未匹配到的键设置默认值(如null或空字符串)
内容的提问来源于stack exchange,提问作者Marcus O'Connor
相关产品推荐
相关产品推荐

