2016-04-11 19 views
1

これを行う方法については複数のガイドに従ってみましたが、何も機能していません。私はまた、成功することなく、既存のものの中に$.each関数を追加しようとしました。これは次のように私のJSONの結果が見えるものである(それは直接ここにコピーする場合、壊れている可能性がありますだけ抜粋ですが、あなたはポイントを得る):AJAXを通じてネストされたJSON結果を取得できません

{ 
     "loc": [ 
     { 
      "path_id": "Trail1", 
      "places": [ 
      { 
       "way_distance": 2, 
       "trace_location": { 
       "lat": 51.2383342365623, 
       "lng": 20.265387296676636 
       }, 
       "trace_info": "", 
       "way_name": "" 
      } 
      ] 

     } 
     ] 
    } 

私は、しかし、ではないから「PATH_ID」からデータを取得することができています

tringhar.html:36 Uncaught TypeError: Cannot read property 'trace_location' of undefined 

は私が出力できるようにしたい:私はにconsole.logを行うと

$.getJSON(url, function(data){ 
     $.each(data.loc,function(i,emp){ 
       var a = this.path_id; 
       console.log(a); //works 

       var b = this.places[0].trace_location; 
       var c = this.places.trace_location; 
       console.log(b); //seems to output objects, but then crashes 
       console.log(c); //output is undefined 

     }); 
}); 

(B);,システムは次のエラーで応答します。このコードの "trace_location"、 「trace_location」のデータはそれはundefinedまたは間違いである。ありがとうございました。

編集:

はまだこのコードで動作していない:

var url = 'https://forward-byte-711.appspot.com/read/Test/Development/en'; 

$(function(){ 

      $.getJSON(url, function(data){ 

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

       console.log(b); 
       }); 



      }); 

}); 

答えて

1

placesが配列です。

var c = this.places.trace_location; 

var c = this.places[0].trace_location; 

Here's a CodePen with the exampleにする必要がある - それは

それはあなたの例ではクラッシュだ理由あなたは未定義のtrace_locationにアクセスしようとするので、それはだ、ではないのでconsole.log(b)の文であるが働いています。コードからvar cconsole.log(c)ステートメントを削除します。

+0

例として「var b」でこれを行いましたが、動作しません。コードスニペットで「var b」または「var c」のいずれも機能していません。 – Jeramo

+0

CodePenで更新されました –

+0

コードスニペットの正確なコピーでも投稿を編集しました。エラーメッセージが表示されます:Uncaught TypeError:未定義の 'trace_location'プロパティを読み取れません。 – Jeramo

0

ここにはjsfiddleがあります。 jsonの残りの部分に何か間違っているか、オブジェクトの1つにjsonフィードでアクセスしようとしているプロパティが実際にはありません。たとえば、placeにはjsonにtrace_locationがありません。

var data = { 
    "loc": [{ 
    "path_id": "Trail1", 
    "places": [{ 
     "way_distance": 2, 
     "trace_location": { 
     "lat": 51.2383342365623, 
     "lng": 20.265387296676636 
     }, 
     "trace_info": "", 
     "way_name": "" 
    }] 
    }] 
}; 

data.loc.forEach(function(item) { 
    console.log(item); 
    item.places.forEach(function(place){ 
    console.log(place); 
    }); 
}); 
関連する問題