如何使用jQuery在JSON序列化的System.Data.DataTable中迭代记录

时间:2012-12-14 21:17:43

标签: jquery json datatable each

JSON看起来像这样:

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

我希望迭代括号[]内的每个记录{...},首先是狗记录,然后是猫记录。如果可以使用$ .each()依次引用每个记录,那该怎么办?

2 个答案:

答案 0 :(得分:1)

我假设我们是从一个JSON字符串开始,而不是一个真正的javascript数组表示法(我不清楚你从什么开始的问题)。以下是一些示例用法:

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);
});

答案 1 :(得分:1)

使用JSON格式的数组,您可以直接访问变量名称。

如果要从String创建此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);
});

如果从服务器端(例如,PHP页面)返回JSON,那么您可以在不解析的情况下使用它:

// 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>