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

如何基于Field A字段合并JSON对象中的可变字段?

合并相同Field A的JSON对象字段

需求说明

现有一组JSON对象,每个对象包含共同字段Field A,以及可变字段Variable Field A或Variable Field B。需要将同一Field A对应的所有可变字段合并到同一个对象中。

原始输入JSON

[{
    "Field A": "ABC",
    "Variable Field A": "66"
},
{
    "Field A": "DEF",
    "Variable Field A": "70"
},
{
    "Field A": "GHI",
    "Variable Field A": "135"
},
{
    "Field A": "JKL",
    "Variable Field A": "19"
},
{
    "Field A": "ABC",
    "Variable Field B": "-729"
},
{
    "Field A": "GHI",
    "Variable Field B": "962"
},
{
    "Field A": "DEF",
    "Variable Field B": "334"
},
{
    "Field A": "JKL",
    "Variable Field B":"241"
}]

目标输出JSON

[{
    "Field A": "ABC",
    "Variable Field A": "66",
    "Variable Field B": "-729"
},
{
    "Field A": "DEF",
    "Variable Field A": "70",
    "Variable Field B": "334"
},
{
    "Field A": "GHI",
    "Variable Field A": "135",
    "Variable Field B": "962"
},
{
    "Field A": "JKL",
    "Variable Field A": "19",
    "Variable Field B": "241"
}]

实现方法

核心思路是用字典/映射表以Field A的值为键,存储每个分组的合并对象。遍历原始数组时,将每个对象的字段合并到对应分组的对象中,最后将字典的值转为数组即可得到结果。以下是两种常用语言的实现:

JavaScript 实现

const originalData = [
  {"Field A": "ABC", "Variable Field A": "66"},
  {"Field A": "DEF", "Variable Field A": "70"},
  {"Field A": "GHI", "Variable Field A": "135"},
  {"Field A": "JKL", "Variable Field A": "19"},
  {"Field A": "ABC", "Variable Field B": "-729"},
  {"Field A": "GHI", "Variable Field B": "962"},
  {"Field A": "DEF", "Variable Field B": "334"},
  {"Field A": "JKL", "Variable Field B":"241"}
];

// 用映射表分组存储合并后的对象
const mergedMap = {};
originalData.forEach(item => {
  const key = item["Field A"];
  // 若分组不存在,初始化基础对象
  if (!mergedMap[key]) {
    mergedMap[key] = {"Field A": key};
  }
  // 合并当前对象的所有可变字段
  Object.keys(item).forEach(field => {
    if (field !== "Field A") {
      mergedMap[key][field] = item[field];
    }
  });
});

// 将映射表的值转为数组,得到最终结果
const mergedData = Object.values(mergedMap);
console.log(JSON.stringify(mergedData, null, 2));

Python 实现

import json

original_data = [
    {"Field A": "ABC", "Variable Field A": "66"},
    {"Field A": "DEF", "Variable Field A": "70"},
    {"Field A": "GHI", "Variable Field A": "135"},
    {"Field A": "JKL", "Variable Field A": "19"},
    {"Field A": "ABC", "Variable Field B": "-729"},
    {"Field A": "GHI", "Variable Field B": "962"},
    {"Field A": "DEF", "Variable Field B": "334"},
    {"Field A": "JKL", "Variable Field B": "241"}
]

merged_map = {}
for item in original_data:
    key = item["Field A"]
    if key not in merged_map:
        merged_map[key] = {"Field A": key}
    # 合并所有非Field A的字段
    for field, value in item.items():
        if field != "Field A":
            merged_map[key][field] = value

# 转换为数组并输出
merged_data = list(merged_map.values())
print(json.dumps(merged_data, indent=2))

扩展说明

这个方法不仅适用于Variable Field A和Variable Field B,如果后续新增其他可变字段,只要属于同一Field A,都会自动合并到对应对象中,兼容性较强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 08:03:58