9

重複の可能性:
ネストされたjsonを読み取るjquery

JSON の複数のレコードをループするためのハードで高速な方法が本当に必要です。私は単にテーブルに出力したいだけです。

$.each() または $.ajax() の成功の JavaScript 方法論のために、function() を介してどの引数を渡す必要があるのか​​ わかりません。すべての例は一般的な単語「data」または「obj」を使用しているようですが、それらは私を混乱させます-それらは組み込みの関数引数ですか、それとも私が好きなように名前を付けることができますか:

$.each(foo, function(bar){

});

そして、ループ/ネストのどこにいるのかをどのように追跡できますか?

私は JQuery を使用したいと考えていますが、そのための簡単な JavaScript メソッドも知っておく必要があります。また、100 行のコードがなくても可能かどうかも知りたいです。

この JSON を例にすると、次のようになります。

{
  date: " 2012-10-18 16:58:35.104576",
  data: [{
    title: "The Princess Bride",
    rating: "PG",
    length: 128,
    stars: [
      "Gary Elwes",
      "Robin Wright",
      "Christopher Guest"
    ]

  }, {
    title: "This is Spinal Tap",
    rating: "R",
    length: 105,
    stars: [
      "Christopher Guest",
      "Michael McKean",
      "Harry Shearer"
    ]
  }]
}

ここでも StackOverflow でさえ、ネストされた JSON を含む有用な例を見つけることができません。

ループして各要素を表のセルに割り当てる最も効率的な方法は何ですか? HTML 出力は重要ではありません。表の作成方法は知っています...「星」を取得するにはどうすればよいですか?

Chrome コンソールを使用すると$.getJSON('/example');、responseText で返された JSON 全体を単純に取得"{"date":"2012-10-18 ,"data": [{"title": "The Princess Bride",できますresponseText。だから、私は迷っています。$.getJSON が responseText をオブジェクト化するために必要な引数は何ですか?

4

1 に答える 1

14

試す

obj.data[0].stars      // Will get you the stars in the 1st Object

obj.data[0].stars[0]   // Gary Elwes

フィドル

Stars オブジェクトを反復するには、これを試すことができます

$.each(obj.data , function(key , value){ // First Level
    $.each(value.stars , function(k , v ){  // The contents inside stars
        console.log(v)
    });        

});

更新されたフィドル

編集

 $.ajax({
      // Parameters 

      success : function(obj){
            $.each(obj.data , function(key , value){ // First Level
                 $.each(value.stars , function(k , v ){  // The contents inside stars
                     console.log(v)
                 });     
            });
      }
  });
于 2012-10-22T21:36:35.103 に答える