0

你在 javascript 中合并了两个 json 吗?

问题:

a={id:123,name:john,status:success};
b={id:123,status:inprocess,transId:245};

输出 json 应该像

{id:123,name:john,status:success,transId:245};

a 中的所有值都应该覆盖 b 中的值,并且不常见的键/值应该出现在输出 json 中。

我尝试了一些递归选项,但很难实现输出。

4

3 回答 3

6

您的ab变量不是有效的 json。

<script>
//change your a and b variable to this.
 a={id:123,name:'john',status:'success'}; 
 b={id:123,status:'inprocess',transId:245};
$(document).ready(function(){

  $.extend(a,b);

});
</script>

并将a具有类似的结构

{
    id: 123
    name: "john"
    status: "inprocess"
    transId: 245
 
}

我用过 jquery api

更新。

没有jQuery

   a={id:123,name:'john',status:'success'}; 
   b={id:123,status:'inprocess',transId:245};

  extend(a,b);

其中扩展函数是:

 function extend(a, b){
    for(var key in b)
        if(b.hasOwnProperty(key))
            a[key] = b[key];
    return a;
 }

参考1 ,参考2 ,参考 3

于 2013-02-26T11:24:36.717 回答
0

这很简单

for (var p in a)
   b[p] = a[p];
于 2013-02-26T11:20:59.287 回答
-1
let x = {
  a: 1,
  b: 2,
  c: 3  
}

let y = {
  c: 4, 
  d: 5,
  e: 6
}

let z = Object.assign(x, y)

console.log(z)

z:
{
  a:1,
  b:2,
  c:4, 
  d:5,
  e:6,
}

---> 注意:对象 z 具有 y 的 c 属性

于 2019-05-14T09:29:57.443 回答