用jquery读json

时间:2014-12-08 10:16:01

标签: javascript jquery json

我跟随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]);
          }

但我在警报中收到未定义的错误。

我如何完成上述任务?

4 个答案:

答案 0 :(得分:1)

length是属性而不是方法。只需删除()

即可
for( i=0; i<eu.length;i++) {
  alert( eu[i].Country );
}

此外,您有一个对象数组,因此eu[0][0]不存在。要输出国家/地区,请使用eu[0].Countryeu[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)

如果#EUform 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
    });
});