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

AngularJS中通过查找值为JSON数组对象添加新键

在JSON数组中为匹配条件的对象添加键值对

没问题,这其实是个很常见的JSON处理需求,核心思路就是遍历数组里的每个对象,判断是否符合你设定的匹配规则,符合的话就给它加上新的键值对。我给你用几种常用的技术方案来实现:

1. JavaScript 实现

不管是在浏览器还是Node.js环境,都可以用这种方式:

直接修改原数组

// 你的原始JSON数组
const fruits = [
  { "$id": "2025", "ID": 41, "Name": "APPLE" },
  { "$id": "2026", "ID": 45, "Name": "MANGO" },
  { "$id": "2027", "ID": 48, "Name": "GUAVA" }
];

// 遍历每个对象,匹配条件就添加Price字段
fruits.forEach(fruit => {
  if (fruit.ID === 45 || fruit.Name === "MANGO") {
    fruit.Price = 50;
  }
});

// 输出结果
console.log(JSON.stringify(fruits, null, 2));

不修改原数组(生成新数组)

如果想保留原数组不变,可以用map方法返回一个新数组:

const updatedFruits = fruits.map(fruit => {
  // 匹配条件时,返回包含新字段的新对象;否则返回原对象
  return fruit.ID === 45 || fruit.Name === "MANGO" 
    ? { ...fruit, Price: 50 } 
    : fruit;
});

2. Python 实现

如果用Python处理JSON,步骤也很清晰:

import json

# 假设你拿到的是JSON字符串,先解析成Python列表
json_data = '''
[ { "$id": "2025", "ID": 41, "Name": "APPLE" }, { "$id": "2026", "ID": 45, "Name": "MANGO" }, { "$id": "2027", "ID": 48, "Name": "GUAVA" } ]
'''
fruits = json.loads(json_data)

# 遍历处理每个字典
for fruit in fruits:
    if fruit["ID"] == 45 or fruit["Name"] == "MANGO":
        fruit["Price"] = 50

# 输出处理后的JSON
print(json.dumps(fruits, indent=2))

同样,如果不想修改原列表,可以生成新列表:

updated_fruits = []
for fruit in fruits:
    if fruit["ID"] == 45 or fruit["Name"] == "MANGO":
        # 复制原字典并添加新键
        updated_fruit = fruit.copy()
        updated_fruit["Price"] = 50
        updated_fruits.append(updated_fruit)
    else:
        updated_fruits.append(fruit)

3. 命令行用jq工具处理

如果你习惯在终端处理JSON文件,jq是非常好用的工具(需要先安装):

# 假设你的JSON内容在fruits.json文件中,执行以下命令
jq 'map(if .ID == 45 or .Name == "MANGO" then . + {Price: 50} else . end)' fruits.json

这个命令会遍历数组,对匹配条件的对象合并Price:50的键值对,直接输出处理后的结果。

核心逻辑总结

不管用哪种方式,核心都是这三步:

  • 遍历JSON数组中的每个对象
  • 判断对象是否满足ID=45或Name=MANGO的条件
  • 对满足条件的对象添加Price:50键值对

内容的提问来源于stack exchange,提问作者WhoAmI

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:17:33