JSON 看起来像这样:
[ {"animal":"dog", "sound": "bark"},
{"animal":"cat", "sound": "meow"} ]
我想迭代括号 [] 内的每条记录 {...},首先是狗记录,然后是猫记录。如果可以使用 $.each() 依次引用每条记录,那是怎么做的呢?
我假设我们从 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);
});
使用 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>