如何将JSON中的值元素作为第二个元素的键来使用?
如何将JSON数组中的id作为键、text作为值重组结构?
这其实是个很常见的数组转键值对的需求,我给你两种常用编程语言的实现方案,你可以按需选用:
JavaScript 实现
我们可以用数组的reduce方法来简洁地完成转换,它会遍历原数组并逐步构建目标对象:
const originalData = [{"id":19,"text":"A-Z CLI 19/03/2015"},{"id":36,"text":"Wavetel Retail1"},{"id":37,"text":"Wavetel A2Z Platinum"},{"id":38,"text":"Wavetel A2Z Gold"},{"id":40,"text":"mysql test2"},{"id":63,"text":"inbound test"},{"id":137,"text":"testpbxretail"},{"id":144,"text":"INBOUND CLI"},{"id":145,"text":"0800142324"},{"id":164,"text":"Rategenerator-Otto-Test"},{"id":165,"text":"Rategenerator-Otto-Test 2 "},{"id":166,"text":"Rategenerator-Otto-Test 3 "},{"id":171,"text":"VasimRateG..."}]; const transformedData = originalData.reduce((acc, item) => { // 将当前元素的id作为键,text作为值存入累加器对象 acc[item.id] = item.text; return acc; }, {}); // 初始值为空对象 console.log(transformedData);
Python 实现
Python里用字典推导式就能一行完成转换,语法非常直观:
original_data = [{"id":19,"text":"A-Z CLI 19/03/2015"},{"id":36,"text":"Wavetel Retail1"},{"id":37,"text":"Wavetel A2Z Platinum"},{"id":38,"text":"Wavetel A2Z Gold"},{"id":40,"text":"mysql test2"},{"id":63,"text":"inbound test"},{"id":137,"text":"testpbxretail"},{"id":144,"text":"INBOUND CLI"},{"id":145,"text":"0800142324"},{"id":164,"text":"Rategenerator-Otto-Test"},{"id":165,"text":"Rategenerator-Otto-Test 2 "},{"id":166,"text":"Rategenerator-Otto-Test 3 "},{"id":171,"text":"VasimRateG..."}] # 遍历原数组,将每个元素的id作为键、text作为值生成新字典 transformed_data = {item["id"]: item["text"] for item in original_data} print(transformed_data)
注意事项
如果你的原数组中存在重复的id,后面出现的元素会覆盖前面的对应值——这是键值对结构的特性,毕竟一个键只能对应一个值,所以如果有重复id的情况,你可能需要提前处理(比如合并值、保留第一个/最后一个等)。
内容的提问来源于stack exchange,提问作者Badal Solanki
相关产品推荐
相关产品推荐

