0

そのため、json オブジェクトを反復処理しようとしていますが、子が 1 つなのか複数なのかわかりません。次のように、コーヒースクリプトで$.each jquery 関数を使用しています。

$.each data.searchresults.response.results.result, (i) ->
  count = i + 1
  console.log data.searchresults.response.result.address.street

これは、「結果」ノードに 2 つのインスタンスがある場合に機能します。ただし、インスタンスが 1 つしかない場合は機能しません。私の質問は、 $.each 関数を次善の方法で書いていますか、または結果ノードがいくつ存在するかを確認してから、ループするかノードにアクセスするかを決定する必要がありますか?

2 つのJSON : http://www.zillow.com/webservice/GetSearchResults.htm?zws-id=X1-ZWz1dj9f5y35l7_agge7&address=3925%20edwardsville%20galena%20road&citystatezip=47122

1 つのJSON : http://www.zillow.com/webservice/GetSearchResults.htm?zws-id=X1-ZWz1dj9f5y35l7_agge7&address=206%20Plum%20lake%20drive&citystatezip=47172

複数の結果ノードを実行してもエラーは発生しませんが、結果ノードを 1 つだけ実行するとエラーが発生します。

TypeError: 'undefined' はオブジェクトではありません ('data.searchresults.response.results.result[i].address.street' を評価しています)

4

1 に答える 1

1

したがって、私が抱えていた問題 (私が知っているばか) は、.each 関数内で [i] を含む完全なオブジェクト パスを使用して、オブジェクトの正しい反復にアクセスしていたことです。

したがって、これを使用する代わりにconsole.log data.searchresults.response.result[i].address.street

スクリプトを次のように調整しました。

$.each data.searchresults.response.results.result, (i,result) ->
  count = i + 1
  console.log result.address.street
于 2013-05-01T04:05:35.983 に答える