-1

私はjqueryとjavascriptを使用しており、ajax呼び出しを使用してjsonファイルからすべての情報を取得しています。json ファイルは正常に読み込まれ、ポイントが完全にマップに追加されますが、コンソールにはまだエラーが表示されます。

"TypeError: obj[i].info is null"

すべてのポイントが正しく挿入され、その中に "info" 属性があるにもかかわらず、jquery が null 値を与えるのはなぜですか?

コード例:

$.ajax({
    url: 'http://localhost:3000/api/',
    type: 'GET',
    dataType: 'html',
}).success(function(data){
    var obj = $.parseJSON(data);
        console.log(obj);
        $.each(obj, function(i, item){
            taxiData.push(new google.maps.LatLng(obj[i].info.latitude,obj[i].info.longitude));
        });

}).error(function(data){
    console.log("Error with data: " + data);
});

私のJSON:

[{
        "id" : 1,
        "ip" : "165.242.13.8",
        "referer" : "www.facebook.com",

        "info" : {
            "request" : "165.242.13.8",
            "ip" : "165.242.13.8",
            "country_code2" : "JP",
            "country_code3" : "JPN",
            "country_name" : "Japan",
            "continent_code" : "AS",
            "region_name" : "11",
            "city_name" : "Hiroshima",
            "postal_code" : "",
            "latitude" : 34.3963,
            "longitude" : 132.45940000000002,
            "dma_code" : null,
            "area_code" : null,
            "timezone" : "Asia/Tokyo"
        }
    }
]
4

3 に答える 3

1

まず、設定できます

dataType : "json"

そしてしないでください

var obj = $.parseJSON(data);

あなたのデータはすでにオブジェクトになります

第二に、このコードは機能します

console.log(obj);
$.each(obj, function(i, item){
    console.log(obj[i].info.latitude);
    console.log(obj[i].info.longitude);
    console.log(item.info.latitude);
    console.log(item.info.longitude);
});

項目 === obj[i]

于 2013-07-10T09:45:07.753 に答える
0

これを試して:

$.ajax({
    url : 'http://localhost:3000/api/',
    type : 'GET',
    dataType : 'json',
}).success(function (data) {
    var obj = data;
    console.log(obj);
    $.each(obj, function (i, item) {
        var pushString = item.info.latitude + ',' + item.info.longitude;
        var googleLatLong = new google.maps.LatLng(pushString);
        taxiData.push(googleLatLong);
    });
}).error(function (data) {
    console.log("Error with data: " + data);
});
于 2013-07-10T10:22:19.117 に答える