【问题标题】:How can I merge two different JSON objects recursively, modifying the first如何递归合并两个不同的 JSON 对象,修改第一个
【发布时间】:2023-01-29 04:57:43
【问题描述】:

我想递归合并两个不同的 JSON 对象,修改第一个 这是我要合并的 JSON 对象:

var obj1 = {
  id: 101,
  spec: { weight: 52, price: 100 },
  force: 97
};
var obj2 = {
  spec: { price: 200 },
  durian: 100
};

我想要的结果是:

{"id":101,"spec":{"weight":52,"price":200},"force":97,"durian":100}

【问题讨论】:

    标签: javascript


    【解决方案1】:

    您可以使用 jQuery 中的 $.extend() 方法以递归方式合并两个 JSON 对象,修改第一个对象。

    var obj1 = {
      id: 101,
      spec: { weight: 52, price: 100 },
      force: 97
    };
    var obj2 = {
      spec: { price: 200 },
      durian: 100
    };
    $.extend( true, obj1, obj2 );
    console.log( JSON.stringify( obj1 ) );
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>

    传递给 $.extend() 的 true 参数告诉它以递归方式合并对象。这会将 obj2 的属性合并到 obj1 中,覆盖任何具有相同名称的属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-14
      相关资源
      最近更新 更多