为JSON数组中的对象添加order_id序列号
问题描述
现有如下JSON数组:
[ { "id": 3 }, { "id": 1 }, { "id": 2 } ]需要为数组中的每个对象新增
order_id字段,其值为对象在数组中的序号(首个对象order_id为1,依次递增),最终预期结果如下:[ { "id": 3, "order_id": 1 }, { "id": 1, "order_id": 2 }, { "id": 2, "order_id": 3 } ]
解决方案
以下是几种常用编程语言的实现方式:
JavaScript 实现
利用map方法的索引参数生成序号,代码简洁高效:
const originalArr = [{"id":3},{"id":1},{"id":2}]; const resultArr = originalArr.map((obj, index) => ({ ...obj, order_id: index + 1 })); // 输出格式化后的结果 console.log(JSON.stringify(resultArr, null, 2));
Python 实现
使用enumerate函数指定起始序号为1,遍历数组添加字段:
import json # 原始JSON字符串 raw_json = ''' [ { "id": 3 }, { "id": 1 }, { "id": 2 } ] ''' # 解析JSON为数组 original_arr = json.loads(raw_json) result_arr = [] for order_id, obj in enumerate(original_arr, start=1): # 若不想修改原对象,可创建新字典:new_obj = {**obj, 'order_id': order_id} obj['order_id'] = order_id result_arr.append(obj) # 输出格式化后的结果 print(json.dumps(result_arr, indent=2))
关键说明
- 两种方案都支持任意长度的输入数组,自动生成连续递增的
order_id - JavaScript方案通过扩展运算符创建新对象,不会修改原数组;Python方案若需保留原对象,可改用字典解构创建新对象
内容的提问来源于stack exchange,提问作者takotsubo
相关产品推荐
相关产品推荐

