#!/usr/bin/env python
# -*- coding: utf-8 -*-
##################################################################
#
# Copyright (c) 2024 CICV, Inc. All Rights Reserved
#
##################################################################
"""
@Authors:           yangzihao(yangzihao@china-icv.cn)
@Data:              2024/04/01
@Last Modified:     2024/04/01
@Summary:           Config json drop duplicate.
"""

import json
import os

def read_json_file(file_path):
    with open(file_path, 'r', encoding='utf-8') as file:
        return json.load(file)

def compare_json_files(file_paths):
    # 读取第一个JSON文件作为基准
    base_json = read_json_file(file_paths[0])
    # 创建一个字典来存储比较结果
    result_json = {}

    # 遍历基准JSON的所有key
    for key in base_json:
        # 初始化所有文件的该key的值为基准值
        result_value = base_json[key]
        # 遍历剩余的文件进行比较
        for file_path in file_paths[1:]:
            # 读取当前文件
            current_json = read_json_file(file_path)
            # 检查key是否存在，并且值是否相同
            if key not in current_json or current_json[key] != result_value:
                # 如果不同，则将该key的值设为null
                result_value = None
                break
                # 将最终值添加到结果JSON中
        result_json[key] = result_value

    return result_json

def write_json_file(file_path, data):
    with open(file_path, 'w', encoding='utf-8') as file:
        json.dump(data, file, ensure_ascii=False, indent=4)

def main():
    # 假设您的JSON文件都在当前目录下的一个名为'json_files'的文件夹中
    json_dir = './jsonFiles'
    file_paths = [os.path.join(json_dir, f) for f in os.listdir(json_dir) if f.endswith('.json')]

    # 比较这些文件
    result_json = compare_json_files(file_paths)

    # 将结果写入新的JSON文件
    output_file_path = './output.json'
    write_json_file(output_file_path, result_json)
    print(f'Comparison result saved to {output_file_path}')

if __name__ == '__main__':
    main()