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

如何将三个JSON文件合并为一个?(PHP及其他语言方案)

合并JSON文件并合并指定数组的解决方案

看起来你现在的问题是,原来的代码只是把每个JSON对象整体塞进了一个大数组里,而没有将相同键(比如strikers)下的数组合并到一起。我给你两种常用语言的解决方案,按你的需求按顺序合并,并且合并对应键的数组内容:

PHP 解决方案

这个方案支持任意数量的JSON文件,只需要在文件列表里添加即可,会自动合并相同键下的数组:

<?php
// 按顺序列出要合并的JSON文件,添加第三个文件直接加在这里就行
$jsonFiles = ['1.json', '2.json', '3.json'];

$mergedData = [];

foreach ($jsonFiles as $file) {
    // 读取并解析JSON文件为关联数组
    $content = file_get_contents($file);
    $data = json_decode($content, true);
    
    // 遍历当前JSON里的每一组键值对
    foreach ($data as $key => $value) {
        // 如果值是数组,就合并到目标数组的对应键中
        if (is_array($value)) {
            if (!isset($mergedData[$key])) {
                $mergedData[$key] = [];
            }
            $mergedData[$key] = array_merge($mergedData[$key], $value);
        } else {
            // 如果不是数组类型,后面的文件内容会覆盖前面的(可根据需求调整逻辑)
            $mergedData[$key] = $value;
        }
    }
}

// 输出格式化后的合并结果,方便阅读
echo json_encode($mergedData, JSON_PRETTY_PRINT);
?>

运行这段代码后,用你提供的两个JSON文件测试,会得到你期望的输出:

{
    "strikers": [
        {
            "name": "Narendran",
            "club": "Manchester United"
        },
        {
            "name": "Kannan",
            "club": "Arsenal"
        }
    ]
}

Python 解决方案

如果你更习惯用Python,也可以用下面的代码,逻辑和PHP一致:

import json

# 按顺序定义要合并的JSON文件列表
json_files = ['1.json', '2.json', '3.json']
merged_data = {}

for file_path in json_files:
    with open(file_path, 'r', encoding='utf-8') as f:
        data = json.load(f)
        for key, value in data.items():
            # 合并数组类型的键值
            if isinstance(value, list):
                if key not in merged_data:
                    merged_data[key] = []
                merged_data[key].extend(value)
            else:
                # 非数组类型,后续文件覆盖前面的
                merged_data[key] = value

# 输出格式化后的JSON结果
print(json.dumps(merged_data, indent=4))

补充说明

  • 两种方案都支持按你指定的顺序合并文件
  • 如果JSON里有非数组的键值对,后面的文件会覆盖前面的,如果你需要保留第一个或者做其他处理,可以修改对应逻辑
  • 添加第三个JSON文件只需要在文件列表数组里追加文件名即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:31:50