JavaScript 中 JSON 对象合并的方法

JavaScript 中的 JSON 对象不能像 PHP 中的 json_decode 转换为数组去处理,下面的解决方案,虽然不够美观,但实际上确是有效的解决方案。

如果需要将下面的 json 对象合并:

var a ={"a":"1","b":"2"}
var b ={"c":"3","d":"4","e":"5"}

想得到结果:

var c ={"a":"1","b":"2","c":"3","d":"4","e":"5"}

直接使用 js 的话,可以用一下方法:

<script>
function extend(des, src, override){
   if(src instanceof Array){
       for(var i = 0, len = src.length; i < len; i++)
            extend(des, src[i], override);
   }
   for( var i in src){
       if(override || !(i in des)){
           des[i] = src[i];
       }
   } 
   return des;
}
var a ={"a":"1","b":"2"}
var b ={"c":"3","d":"4","e":"5"}
var c = extend({}, [a,b]);
alert(c.a);
</script>