如何将来自2个json文件的数据与jQuery结合起来

时间:2015-08-18 11:23:59

标签: javascript jquery json

我正在尝试使用来自两个单独的json文件的数据创建Google地图。我正在尝试使用jquery / javascript来组合这两个文件,然后通过Google Maps API处理生成的对象数组。

我已经尝试了$ .extend,$ .merge,concat,我甚至尝试将数据推送到空数组中,但在每种情况下,只有第一组数据出现在地图上(尽管我可以如果我用console.log显示它们,请分别查看两组数据。

我必须做一些根本错误的事情,但我没有看到它。我的代码的相关部分如下(我已经尝试过注释掉的东西)。任何建议都将非常受欢迎。

j$.when(
    j$.getJSON('mapData1.js'),
    j$.getJSON('mapData2.js')
).done(function(data1, data2) {
    var d1 = data1;
    var d2 = data2;
    var d3 = [];
    d3.push(d1[0]);
    d3.push(d2[0]);
    //var d3 = j$.extend({},d1,d2);
    //var d3 = j$.merge(d1,d2);
    //var d3 = d1.concat(d2);
    var data = d3[0];

    //code to process data with Google Maps API
});

我的json文件看起来像这样(但还有更多项目):

[
    {
        "ID": "a001a000002o4iZAAQ",
        "NAME": "Atlanta",
        "Address": "123 State Street",
        "City": "Atlanta",
        "StateAbbreviation": "GA",
        "SF": "",
        "LeaseExpiration": "8/31/2012",
        "Occupancy": "2",
        "Country": "USA",
        "Address2": "",
        "Lat": "33.7863317",
        "Lng": "-84.3836873",
        "Type": "loc",
        "Color": "red"
    }
]

1 个答案:

答案 0 :(得分:1)

您可以使用concat()

var array1 = [{
    "ID-1": "a001a000002o4iZAAQ",
        "NAME-1": "Atlanta",
        "Address-1": "123 State Street",
        "City-1": "Atlanta",
        "StateAbbreviation-1": "GA",
        "SF-1": "",
        "LeaseExpiration-1": "8/31/2012",
        "Occupancy-1": "2",
        "Country-1": "USA",
        "Address2-1": "",
        "Lat-1": "33.7863317",
        "Lng-1": "-84.3836873",
        "Type-1": "loc",
        "Color-1": "red"
}];
var array2 = [{
    "ID-2": "a001a000002o4iZAAQ",
        "NAME-2": "Atlanta",
        "Address-2": "123 State Street",
        "City-2": "Atlanta",
        "StateAbbreviation-2": "GA",
        "SF-2": "",
        "LeaseExpiration-2": "8/31/2012",
        "Occupancy-2": "2",
        "Country-2": "USA",
        "Address2-2": "",
        "Lat-2": "33.7863317",
        "Lng-2": "-84.3836873",
        "Type-2": "loc",
        "Color-2": "red"
}];

var array3 = array1.concat(array2);

alert(JSON.stringify(array3));