如何在jquery中迭代json数据

如何在jquery中迭代json数据,jquery,json,Jquery,Json,如何在jquery中迭代json数据 [{"id":"856","name":"India"}, {"id":"1035","name":"Chennai"}, {"id":"1048","name":"Delhi"}, {"id":"1113","name":"Lucknow"}, {"id":"1114","name":"Bangalore"}, {"id":"1115","name":"Ahmedabad"}, {"id":"1116","name":"Cochin"}, {

如何在jquery中迭代json数据

[{"id":"856","name":"India"},
 {"id":"1035","name":"Chennai"},
 {"id":"1048","name":"Delhi"},
 {"id":"1113","name":"Lucknow"},
 {"id":"1114","name":"Bangalore"},
 {"id":"1115","name":"Ahmedabad"},
 {"id":"1116","name":"Cochin"},
 {"id":"1117","name":"London"},
 {"id":"1118","name":"New York"},
 {"id":"1119","name":"California"}
]
您可以使用以下功能:

$(yourjsondata).each(function(index, element) {
    alert('id: ' + element.id + ', name: ' + element.name);
});
您可以这样使用:

$.each(data, function(i, obj) {
  //use obj.id and obj.name here, for example:
  alert(obj.name);
});

您也可以使用常规javascript,我认为这会快一点(尽管我不确定jQuery如何优化
每个
):

var data=[{“id”:“856”,“name”:“India”},
{“id”:“1035”,“姓名”:“钦奈”},
{“id”:“1048”,“name”:“德里”},
{“id”:“1113”,“name”:“勒克瑙”},
{“id”:“1114”,“姓名”:“班加罗尔”},
{“id”:“1115”,“name”:“Ahmedabad”},
{“id”:“1116”,“name”:“Cochin”},
{“id”:“1117”,“name”:“London”},
{“id”:“1118”,“姓名”:“纽约”},
{“id”:“1119”,“name”:“California”}
];
var data_length=data.length;
对于(变量i=0;i

编辑以反映Nick关于性能的建议

使用$.each函数迭代对象的所有属性。在每次迭代中,您将获得属性的名称/键和值:

$.each(data, function(key, val) {
  alert(key+ " *** " + val);
});

.each()
用于对jQuery对象进行操作,这些对象不应包含普通数组,最好按原意使用
$。each()
。@Nick,我以为jQuery对象(例如从jQuery选择器返回的对象)是普通数组。我同意您的看法,在这种情况下,静态的
$。每个
方法都更合适。它们还有一系列其他属性,您可以使用
.get()
(内部为
.toArray()
)来获取DOM元素的基本数组。@Nick,是的,我知道这个数组中的对象通过额外的属性和方法得到了增强。也许有一点不同,但我认为更准确的说法是,jQuery对象是通过数组中的一些属性增强的对象。否则,这意味着它们拥有数组的全部功能。这取决于访问
.length
不是一件小事,因此,如果性能是一个问题,最好缓存它。如果我不知道JSON对象中的键和值的名称怎么办?参数列表中的
I
obj
是什么?@Adamnick我会冒险猜测
I
是索引,
obj
是组成每个元素的对象。
$.each(data, function(key, val) {
  alert(key+ " *** " + val);
});