2016-04-11 1 views
1

私は以前この問題についていくつかの助けを得ようとしましたが、何も動作していないようです。私はいくつかの入れ子になったオブジェクトをREST APIから取得したい。 JSONからネストされたオブジェクトを取得することができません

この

は、私が使用していたコードであり、それが動作するはずです:

var url = 'XXXXX'; 

$(function(){ 

      $.getJSON(url, function(data){ 

       $.each(data.paths,function(i,emp){   
       var b = this.places[0].place_radius; 

       console.log(b); 
       }); 



      }); 

}); 

しかし、私は、Webブラウザでそれを実行しようとしたとき、私は、このエラーメッセージが表示されます:

25 
25 
apirest.html:14 Uncaught TypeError: Cannot read property 'place_radius' of undefined 

I本当に助けてくれてありがとう!

+1

'data.paths'の3番目のエントリには" places "(つまりplaces:Array [0]')が含まれていないようです。 – showdev

+0

'data'は実際にどのように見えますか?そして、あなたは 'place_radius'または' place_position'を意味しますか? – Teepeemm

+0

(Teepeemmへ)こんにちは、データで私はJSON全体を参照します。私はplace_radiusを意味しましたが、実際にはネストされたオブジェクトにアクセスすることはできません。 (to showdev)しかし、どのように結果が得られ、アプリケーションがクラッシュするのですか? – Jeramo

答えて

2

子要素の束をすばやく確認し、「b」に正しい値を割り当てる方法の1つがあります。存在しない場合はfalseです。 place_radiusが偽であれば(例えばbool false、つまり0と評価される)、より慎重な手法を使用しなければならないことに注意してください。

$.getJSON(url, function(data){ 
    $.each(data.paths,function(i,emp){ 
    var b = this.places && this.places[0] && this.places[0].place_radius || false; 
    if (b === false) { 
     console.log("that thing did not exist"); 
    } else { 
     console.log(b); 
    } 
    }); 
});   
関連する問題