JavaScript如何将嵌套JSON数据转换为语义化键名的可读格式
JavaScript实现该数据转换的方案
- 首先注意:你提供的原始JSON末尾多了一个多余的
},属于语法错误,运行转换前需要先修正这个问题,否则JSON解析会报错。 - 转换逻辑核心:原始数组每一项的
c字段是长度为4的数组,按索引顺序分别对应目标对象的name、start_date、end_date、date四个字段,直接通过数组解构+map遍历即可完成转换。
完整实现代码
// 原始数据(已修正语法错误) const rawData = [ { "c": [ { "v": "Food Truck: The Vegan" }, { "v": "06/02/2022 16:00:00" }, { "v": "06/02/2022 21:00:00" }, { "v": "06/02/2022" } ] }, { "c": [ { "v": "Food Truck: Lob Dogs" }, { "v": "06/03/2022 16:00:00" }, { "v": "06/03/2022 21:00:00" }, { "v": "06/03/2022" } ] } ]; // 执行转换 const result = rawData.map(({ c }) => { const [nameItem, startItem, endItem, dateItem] = c; return { name: nameItem.v, start_date: startItem.v, end_date: endItem.v, date: dateItem.v }; }); // 输出转换结果 console.log(result);
说明
- 上述代码运行后输出的结构完全匹配你给出的目标格式,字段值完全取自原始数据,不会篡改内容。
- 你给出的目标示例中第二条数据的
start_date值为"06/03/2022 16:00:"属于明显笔误,上述逻辑会保留原始数据中完整的时间字符串,如果需要自定义时间格式,可以在返回对象时对时间字符串做截断、格式化处理。
内容的提问来源于stack exchange,提问作者Shibin
相关产品推荐
相关产品推荐

