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

基于嵌套parameters匹配规则合并JSON对象数组的方法

基于Parameters属性匹配合并JSON对象列表

需求概述

我有一个大型JSON对象列表,需要将其中满足匹配条件的对象合并,生成新的对象列表。核心匹配依据是每个对象嵌套的parameters属性,与system_info无关。

匹配规则

  • 两个对象的共享parameters键对应的键值必须完全一致
  • 某一对象的parameters包含额外键不影响匹配(只要双方共有的键值全部相同,即判定匹配成功)

合并规则

匹配成功的对象合并为一个新对象:

  • parameters取两者的键值对并集(保留所有键,因匹配时共享键值一致,不会出现键值冲突)
  • system_info取两者的键值对并集(保留所有键值对)

示例演示

初始两个对象

对象1:

{
    "parameters": {
        "Global Region": "Estonia",
        "Building Typology": "Office",
        "Building Age": "Old",
        "Energy Performance": "Poor"
    },
    "system_info": {
        "Envelope Type": "Low-Performance-Envelope-Old",
        "u-value_floor": 1.1,
        "u-value_wall": 1.8,
        "u-value_window": 3.2,
        "u-value_roof": 1,
        "g_value%": 0.7,
        "infiltration @50pa_m3/h.m2_facade area": 8
    }
}

对象2:

{
    "parameters": {
        "Global Region": "Estonia",
        "Building Typology": "Office"
    },
    "system_info": {
        "Ventilation Type": "Mid-Eff-Mech-Vent-WOHR-Old",
        "HR_efficiency": "NONE",
        "Supplyfan_w-HR_SFP_W/m3/s": "NONE",
        "Returnfan_w-HR_SFP_W/m3/s": "NONE",
        "Supplyfan_w/o-HR_SFP_W/m3/s": 2500,
        "Returnfan_w/o-HR_SFP_W/m3/s": 2300,
        "Reference": "EN 13779 with degradation assumption"
    }
}

第一次合并结果

两个对象共享的parameters键(Global Region、Building Typology)值完全一致,合并后:

{
    "parameters": {
        "Global Region": "Estonia",
        "Building Typology": "Office",
        "Building Age": "Old",
        "Energy Performance": "Poor"
    },
    "system_info": {
        "Envelope Type": "Low-Performance-Envelope-Old",
        "u-value_floor": 1.1,
        "u-value_wall": 1.8,
        "u-value_window": 3.2,
        "u-value_roof": 1,
        "g_value%": 0.7,
        "infiltration @50pa_m3/h.m2_facade area": 8,
        "Ventilation Type": "Mid-Eff-Mech-Vent-WOHR-Old",
        "HR_efficiency": "NONE",
        "Supplyfan_w-HR_SFP_W/m3/s": "NONE",
        "Returnfan_w-HR_SFP_W/m3/s": "NONE",
        "Supplyfan_w/o-HR_SFP_W/m3/s": 2500,
        "Returnfan_w/o-HR_SFP_W/m3/s": 2300,
        "Reference": "EN 13779 with degradation assumption"
    }
}

加入第三个对象后的合并

新增对象:

{
    "parameters": {
        "Global Region": "Estonia",
        "Building Typology": "Office",
        "DHW Source": "Elec",
        "Building Age": "Old",
        "Energy Performance": "Poor"
    },
    "system_info": {
        "DHW Type": "Low-Eff-Elec-Boiler-Old",
        "DHW_efficiency": 0.75
    }
}

该对象与已合并对象的共享parameters键值全部一致,合并后:

{
    "parameters": {
        "Global Region": "Estonia",
        "Building Typology": "Office",
        "Building Age": "Old",
        "Energy Performance": "Poor",
        "DHW Source": "Elec"
    },
    "system_info": {
        "Envelope Type": "Low-Performance-Envelope-Old",
        "u-value_floor": 1.1,
        "u-value_wall": 1.8,
        "u-value_window": 3.2,
        "u-value_roof": 1,
        "g_value%": 0.7,
        "infiltration @50pa_m3/h.m2_facade area": 8,
        "Ventilation Type": "Mid-Eff-Mech-Vent-WOHR-Old",
        "HR_efficiency": "NONE",
        "Supplyfan_w-HR_SFP_W/m3/s": "NONE",
        "Returnfan_w-HR_SFP_W/m3/s": "NONE",
        "Supplyfan_w/o-HR_SFP_W/m3/s": 2500,
        "Returnfan_w/o-HR_SFP_W/m3/s": 2300,
        "Reference": "EN 13779 with degradation assumption",
        "DHW Type": "Low-Eff-Elec-Boiler-Old",
        "DHW_efficiency": 0.75
    }
}

加入第四个对象后的结果

新增对象:

{
    "parameters": {
        "Global Region": "Estonia",
        "Building Typology": "Office",
        "DHW Source": "Gas",
        "Building Age": "Old",
        "Energy Performance": "Poor"
    },
    "system_info": {
        "DHW Type": "Low-Eff-Elec-Boiler-Old",
        "DHW_efficiency": 0.1
    }
}

该对象与已合并对象的共享parameters键值一致,但DHW Source为新增键且值不同,无法与现有合并对象匹配,生成新的合并对象:

{
    "parameters": {
        "Global Region": "Estonia",
        "Building Typology": "Office",
        "Building Age": "Old",
        "Energy Performance": "Poor",
        "DHW Source": "Gas"
    },
    "system_info": {
        "Envelope Type": "Low-Performance-Envelope-Old",
        "u-value_floor": 1.1,
        "u-value_wall": 1.8,
        "u-value_window": 3.2,
        "u-value_roof": 1,
        "g_value%": 0.7,
        "infiltration @50pa_m3/h.m2_facade area": 8,
        "Ventilation Type": "Mid-Eff-Mech-Vent-WOHR-Old",
        "HR_efficiency": "NONE",
        "Supplyfan_w-HR_SFP_W/m3/s": "NONE",
        "Returnfan_w-HR_SFP_W/m3/s": "NONE",
        "Supplyfan_w/o-HR_SFP_W/m3/s": 2500,
        "Returnfan_w/o-HR_SFP_W/m3/s": 2300,
        "Reference": "EN 13779 with degradation assumption",
        "DHW Type": "Low-Eff-Elec-Boiler-Old",
        "DHW_efficiency": 0.1
    }
}

内容的提问来源于Stack Exchange,提问作者Tluther

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 21:35:55