我跟随json
[{\"Country\":\"Europe\",\"City\":[\"Berlin\",\"Istanbul\",\"London\",\"Manchester\",\"Milan\",\"Paris\"]},null]
我想读一下这个国家及其城市。
我试过这样的
var eu = jQuery.parseJSON($("#EU").val());
for( i=0; i<eu.length();i++)
{
alert( eu[0][0]);
}
但我在警报中收到未定义的错误。
我如何完成上述任务?
答案 0 :(得分:1)
length
是属性而不是方法。只需删除()
:
for( i=0; i<eu.length;i++) {
alert( eu[i].Country );
}
此外,您有一个对象数组,因此eu[0][0]
不存在。要输出国家/地区,请使用eu[0].Country
或eu[0]['Country']
。
此外,您的第二个Array元素为null,因此您应该检查(或接收错误):
for( i=0; i<eu.length;i++) {
if( 'Country' in eu[i] ) {
alert( eu[i].Country );
}
}
答案 1 :(得分:1)
您可以在for
循环中尝试此操作:
for( i=0; i<eu.length;i++)
{
alert( eu[0]['Country']);
alert( eu[0]['City'][0]);
}
答案 2 :(得分:0)
如果#EU
是form input
,它将获得json,如果其div
或html元素尝试text()
来获取json
$("#EU").text();
并修复循环
for( var i=0, x = eu.length; i < x; i++) //length
答案 3 :(得分:0)
您可以使用下面更简单的代码。
var vJson = [{"Country":"Europe","City":["Berlin","Istanbul","London","Manchester","Milan","Paris"]}];
$.each(vJson, function(idx, obj) {
alert(obj.Country); // Get Country
$.each(obj.City, function(idx1, obj1) {
alert(obj1); // Get multiple city of country
});
});