2012-04-29 5 views
0

私はYahooのAPIを使用して座標を郵便番号に変換しています。それが返すJSONはこれです:jQueryを使用したJSONデータの解析

{ 
"ResultSet": { 
    "version": "1.0", 
    "Error": 0, 
    "ErrorMessage": "No error", 
    "Locale": "us_US", 
    "Quality": 99, 
    "Found": 1, 
    "Results": [{ 
     .... 
    }] 

私は何をやっていることです:私は上記の何

$.getJSON("http://where.yahooapis.com/geocode?q=" + lat + ",+" + lon + "&gflags=R&flags=J", function(data){ 
      console.log(data.ResultSet.Results.postal); 
     }); 

は明らかに動作しません。私の質問は、結果配列内のデータにどのようにアクセスするのですか?結果として

おかげ

+1

ここで説明されてどのように配列で動作するように:https://developer.mozilla.org/en/JavaScript/Guide/Predefined_Core_Objects#Array_Object –

答えて

3

配列は、次の仕事にコンソールログラインを変えないのですか?

console.log(data.ResultSet.Results[0].postal) 

この場合、各要素を取得するために配列をループするだけです。 JSONを取得するコードは私にとってうまく見えますが、配列要素のビットを見逃してしまったと思います。

+0

ありがとう!うまくいった – Vinny

0

これはうまくいくはずです。

$.getJSON("http://where.yahooapis.com/geocode?q=234532,234533&gflags=R&flags=J", function(data){ 
    $.each(data.ResultSet.Results,function(i,item){ 
     console.log(data.ResultSet.Results[i].postal); 
    });  
}); 

例:http://jsfiddle.net/ALsHH/11/

0

結果は、オブジェクトの配列であるようにプロパティが存在しないただしconsole.log(data.ResultSet.Results.postal);オブジェクトにportalというプロパティにアクセスしようとしている行は、data.ResultSet.Resultsと呼ばれます。あなたはおそらく行う必要がありますどのような

は、配列のような何かの反復である...

$.getJSON("http://where.yahooapis.com/geocode?q=" + lat + ",+" + lon + "&gflags=R&flags=J", function(data){ 
    for (var i=0; i< data.ResultSet.Results.length; i++) { 
     console.log("data.ResultSet.Results[i].postal = " + data.ResultSet.Results[i].postal); 
}); 
関連する問題