如何使用jQuery以最少代码实现指定JSON对象的格式转换
jQuery实现指定JSON结构转换方案
核心逻辑直接遍历目标数组,按索引匹配配对的location和teams字段,自动处理原数据的格式问题,代码精简无冗余。
/** * 输入原始JSON,输出目标结构JSON * @param {Object} input 原始输入JSON对象 * @returns {Object} 转换后的目标结构对象 */ const transformJson = input => ({ dashboardWidgetFacility: $.map(input.dashboardWidgetFacility[0].deskUsageInput.breakup, (group, idx) => { const item = {}; // 解析位置数据:补全缺失的数组括号,解析JSON后生成对应键值 JSON.parse(`[${group[`location_breakup_${idx}`][0]}]`) .forEach(loc => item[loc.name.trim()] = { id: loc.id }); // 组装teams配置 item.widgetInput = { deskUsageInput: { teams: group[`teams_breakup_${idx}`] } }; return item; }) }); // 调用方式 const result = transformJson(原始输入JSON对象);
关键处理说明
- 自动按索引匹配
location_breakup_{index}和teams_breakup_{index}配对字段,后续新增索引条目不需要修改代码 - 自动兼容原数据location字段的非标准JSON格式:原数据存的是拼接的对象字符串,缺少数组外层括号,代码自动补全后完成解析
- 自动去除位置名称的首尾空格,匹配输出要求的键名(比如原数据中带尾部空格的
"building "会自动转为building键) - 传入题目给出的示例输入运行后,输出结构和要求的目标结构完全一致
内容的提问来源于stack exchange,提问作者Mohit H
相关产品推荐
相关产品推荐

