JSON数组推送数组

时间:2014-04-02 22:34:24

标签: javascript arrays json

我有一个JSON结构:

[
    {
        "name": "Sam",
        "ride": "My Ride test",
        "session": "6htbgumjtmnxko6r",
        "info": null
    },
]

我希望将数据附加到结构的"info"部分。我的变量看起来像这样:

var jsonData = [{                                   
    "name": "Sam",                                  
    "ride": "My Ride test",                         
    "session": session,                             
    "info": null
}];
jsonData.info = [];

我试过了:

jsonData.info.push({
        id: integer, 
        data:   { 
            distance: currentDistance || 0,
            lat: lat, 
            lon: lon
            } 
});
    jsonData.push(jsonData.info);

jsonData[3].push(jsonData.info);

所有上述结果都是:

[
    {
        "name": "Sam",
        "ride": "My Ride test",
        "session": "6htbgumjtmnxko6r",
        "info": null
    },
    [
        {
            "id": 1,
            "data": {
                "distance": 0,
                "lat": 53.6419743,
                "lon": -1.7945115999999999
            }
        }
    ]
]

我如何进入jsonData的"info"部分?

2 个答案:

答案 0 :(得分:2)

jsonData[0].info = {
    id: integer, 
    data:   { 
        distance: currentDistance || 0,
        lat: lat, 
        lon: lon
        } 
}

jsonData是一个数组,info不是数组本身的属性,只是数组中第一个值。

如果要将其添加到数组中的每个值,您可以执行以下操作:

jsonData.foreEach(function(v){ 
    v.info = {
        ...
    }
})

Where forEach is supported on all browsers > IE8

答案 1 :(得分:2)

你可以尝试:

jsonData[0].info = {
        id: integer, 
        data:   { 
            distance: currentDistance || 0,
            lat: lat, 
            lon: lon
        } 
}