2012-02-08 11 views
3

JSONファイルがあり、ページが読み込まれるときにこのファイルからデータを読み込む必要があります。 JSON構造に問題があると思われます。 JSONLintが有効であることを示しています。だから私はそれにアクセスするために間違った方法を使用している必要があります。jQueryを使用してJSONデータを読み取る

これは基本的にオブジェクトの配列です(つまり、私の考えです)。

{"Listings":[ 
{"Listing1": 
    { 
     "agency_code":"BP", 
     "property_code":"BON1", 
     "Property_GUID":"6dded624", 
     "FileNo /":"", 
     "country":"AUSTRALIA", 
     "state":"New South Wales", 
     "subregion /":"" 
      } 
     }, 
    {"Listing1": 
    { 
     "agency_code":"BPGA", 
     "property_code":"BONNSTG4-Lot11", 
     "Property_GUID":"6dded624-cde2-429a-81d4-bd6f91256345", 
     "FileNo /":"", 
     "country":"AUSTRALIA", 
     "state":"New South Wales", 
     "subregion /":"" 
      } 
     } 
    ] 
} 

私は$ .ajaxを使用してJSONを読み取ります。ファイルは正常にロードされています。今、個々の「リスティング」にアクセスするにはどうすればいいですか? 配列をループするために$ .eachを試しましたが、コードが機能しません。

+0

これは、オブジェクトの配列ではありません。ここで

http://jsperf.com/jquery-each-vs-for-loops/2はデモです:

$.ajax({ dataType : 'json', success : function (response) { for (var i = 0, len = response.Listings.length; i < len; i++) { //You can now access individual properties like this: var agencyCode = response.Listings[i].Listing1.agency_code; } } }); 

このforループは、jQueryの.each()または$.each()より速く実行されますあなたがおそらく繰り返し処理したいオブジェクトの配列を含んでいます。これを行うコードを表示しない限り、それを伝えることは不可能です。 – millimoose

答えて

7

オブジェクトの配列がありますが、その配列は最初の層ではなく、最上位のListingsプロパティに格納されています。 `と呼ばれる単一のプロパティで、それは、オブジェクトの、http://jsfiddle.net/btHy5/1/

+0

注: 'var totalListings = response.Listings.length;' – ggreiner

+0

私はあなたに従うか分からない。私は 'for'ループで' len = response.Listings.length'を使用しています。あなたのコードでは '$ .each()'を使っているので、実際に行の総数を取得する必要はありません。 – Jasper

+0

私はOPの質問に答えようとしていました。「合計でどれくらい多くのリストが存在するかを測定する方法」 – ggreiner

関連する問題