JSON字段处理:合并cityId与regionId为cities并调整结构
JSON数据转换:合并字段、重命名与清理
针对你给出的JSON数据转换需求,这里提供JavaScript的实现方案,直接处理得到目标结构:
实现代码
const originalData = [ { "taskId": 26, "adsName": "test name 5", "cityId": 2, "regionId": 46, "biddingPrice": 50, "limit": 140 }, { "taskId": 27, "adsName": "test name 6", "cityId": 5, "regionId": null, "biddingPrice": 60, "limit": 150 }, { "taskId": 28, "adsName": "test name 7", "cityId": null, "regionId": 224, "biddingPrice": 60, "limit": 150 } ]; const transformedData = originalData.map(item => { const citiesSegments = []; // 处理cityId,非null则加入 if (item.cityId !== null) { citiesSegments.push(item.cityId.toString()); } // 处理regionId,非null则转为负数后加入 if (item.regionId !== null) { citiesSegments.push((-item.regionId).toString()); } // 返回目标结构 return { name: item.adsName, all_limit: item.limit, cities: citiesSegments.join(', ') }; }); // 输出结果 console.log(JSON.stringify(transformedData, null, 2));
代码说明
- 遍历转换:使用数组的
map方法逐个处理原数据中的每个对象,生成新的目标对象 - 合并cities字段:
- 初始化数组收集有效标识,忽略
null值 - 对regionId统一取负数后转为字符串,保证格式符合要求
- 用
,拼接数组元素,得到最终的cities字符串
- 初始化数组收集有效标识,忽略
- 字段重命名与清理:直接返回包含
name(原adsName)、all_limit(原limit)和cities的新对象,自动丢弃taskId、biddingPrice等无关字段
执行上述代码后,输出的JSON结构完全符合你的预期。
内容的提问来源于stack exchange,提问作者fujidaon
相关产品推荐
相关产品推荐

