在Javascript中从JSON文件中检索单个字段

时间:2013-06-12 16:01:38

标签: javascript jquery json backbone.js

即时通讯使用骨干,jquery,下划线,我想获得一些本地文件中的JSON。

我目前正在使用

        //Will get data but no access to individual objects
        $.getJSON('carinfo.json', function(data){
            console.log(data);
            var data2 = data['unitId'];
            console.log(data2);


        });

将JSON拉入数据变量,但我不知道从哪里开始。例如,我如何从字段名称'carID'中获取所有值?

这是我的一个JSON条目看起来像

{
    "carID": "xx",
    "xxx": {
        "unitID": "xxxxxxx",
        "positionHistory": [{
            "lat": "xxxxx",
            "long": "xxxxxxxx",
            "time": "xxxxxxxxxx",
            "status": "1",
            "estimatedSpeed": "0",
            "lastSoundFileName": "xxxxx",
            "lastSoundRange": "12",
            "lastSoundTime": "xxxxxxxx",
            "isToday": false,
            "minutesAgo": xxxxxx
        }]
    },
    "registration": "xxxxxxx",
    "color": "xxxxxxxx",
    "phone": "",
    "model": "xxxx"
}

编辑:使用data.carID返回undefined。

Chrome控制台输出的屏幕截图

enter image description here

2 个答案:

答案 0 :(得分:1)

更新以说明您的数据是数组。

$.getJSON('carinfo.json', function (data) {
    // Loop over all the cars in data
    for (var i = 0; i < data.length; i++) {
        var car = data[i];
        car.carID === 'xx';  // just do data.whatever to get the value
        car.phone === '';

        car.xxx.positionHistory[0].status === '1'; // data.xxx.positionHistory is an array;
                                            // use [i] to get the ith element

        car.xxx['unitID'] === 'xxxxxxx';     // You can use bracket notation with a
                                      // string to get an object property if
                                      // you prefer

    }
});

答案 1 :(得分:0)

如果您的JSON是汽车条目数组,那么您需要访问它们:

$.getJSON('carinfo.json', function (data) {
    for(var i=0; i<data.length; i++) {
        console.log(data[i].carID);
    }

    // or access without a loop:
    console.log(data[0].carID);
    console.log(data[1].carID);
    console.log(data[0].xxx.unitID);
});