You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 20:10:16