0

JSON は次のようになります。

   [  {"animal":"dog", "sound": "bark"}, 
      {"animal":"cat", "sound": "meow"} ]

そして、角かっこ [ ] 内の各レコード {...} を繰り返したいと思います。最初に犬のレコード、次に猫のレコードです。$.each() を使用して各レコードを順番に参照できる場合、それはどのように行われるのでしょうか?

4

2 に答える 2

1

実際のjavascript配列表記ではなく、JSON文字列から始めていると思います(何から始めているのかという質問からはわかりませんでした)。使用例を次に示します。

var json = '[{"animal":"dog", "sound": "bark"},{"animal":"cat", "sound": "meow"}]';
var jsonObjectArray = $.parseJSON(json);
$.each(jsonObjectArray, function(i, obj) {
    // do something
    console.log(obj.animal);
    console.log(obj.sound);
});
于 2012-12-14T21:22:49.587 に答える
1

JSON形式の配列を使用すると、変数名に直接アクセスできます。

文字列からこのJSONを作成している場合、@ Mikeは正しいので、最初にJSONを解析する必要があります。サーバーのPOSTからJSONが返されると想定していました。

var animals_json = '[{"animal":"dog", "sound": "bark"}, {"animal":"cat", "sound": "meow"}]';
var animals_parsed = $.parseJSON(animals_json);
$.each(animals_parsed, function (i, elem) {
    console.log(elem.animal + " makes a " + elem.sound);
});

JSONがサーバー側(たとえばPHPページ)から返される場合は、解析せずに使用できます。

// SERVER SIDE
<?php
   //... create JSON
   $animals = array(
            array('animal' => 'dog', 'sound' => 'bark'), 
            array('animal' => 'cat', 'sound' => 'meow')
    );
?>

// CLIENT SIDE
<html>
<script>
    // RETURN FROM PHP PAGE ECHO VIA AJAX PERHAPS //
    var animals = <?php echo json_encode($animals) ?>;

    $.each(animals, function (i, elem) {
        console.log(elem.animal + " makes a " + elem.sound);
    });
</script>
</html>
于 2012-12-14T21:23:13.847 に答える