JavaScript 中 2个json拼接合成一个新的json

来源:互联网 发布:淘宝开店卖景点门票 编辑:程序博客网 时间:2024/06/04 19:29

在.Net开发的过程中,经常遇见需要把先后获取的数据叠加在一起,而后台获取数据的方式一般是ajax获取json格式的数据,就需要创建一个全局的var变量,把先后获取的json都放在里面,表格或者图形生成时在for循环。代码如下:

var resultJsonObject;

//此方法是合并2个json
function mergejson(jsonbject1, jsonbject2) {
    var str1 = '';
    var str2 = '';
    var str3 = '';
    if (jsonbject1 != undefined) {
        str1 = JSON.stringify(jsonbject1); //将JSON对象转化为JSON字符
    }

    if (str1 != undefined) {

        str1 = str1.substr(1, str1.length - 2);
    }
    if (jsonbject2 != undefined) {
        str2 = JSON.stringify(jsonbject2); //将JSON对象转化为JSON字符
    }

    if (str2 != undefined) {

        str2 = str2.substr(1, str2.length - 2);
    }
    if ((str1 + str2) == undefined) {
        str3 = '[]';
    }
    else if ((str1 + str2) == '') {
        str3 = '[]';
    }
    else if (str1 == undefined) {
        str3 = '[' + str2 + ']';
    } else if (str1 == '') {
        str3 = '[' + str2 + ']';
    } else if (str2 == undefined) {
        str3 = '[' + str1 + ']';
    } else if (str2 == '') {
        str3 = '[' + str1 + ']';
    } else {
        str3 = '[' + str1 + ',' + str2 + ']';
    }

    if (str3 != undefined) {

        var obj = JSON.parse(str3); //由JSON字符串转换为JSON对象
        return obj;
    } else { return [{}]; }
}