2012-03-09 98 views
0
$('#myClick2').change(function() { 
    if (this.checked) { 
    $.getJSON('message_center_getMessageLists.asp', {}, function (json) { 

      $.each(json.items, function (i, item) { 
       alert(item.rank.distID); 
       alert(item.rank.name); 
       alert(item.rank.description); 
      }); 
     }) 
     .error(function() { 
      alert("There was an error while trying to make this request; If it persists please contact support"); 
    }); 
    } 
}); 

我似乎无法得到上述工作,我必须失去一些东西。试图循环通过Json

下面是JSON的,我通过

{ 
    "rank": [ 
     { 
      "distID": "1", 
      "name": "John Doe", 
      "description": "My Rank" 
     }, 
     { 
      "distID": "2", 
      "name": "Jane Dow", 
      "description": "My Rank" 
     }, 
     { 
      "distID": "3", 
      "name": "Robin Doe", 
      "description": "My Rank" 
     }, 
     { 
      "distID": "4", 
      "name": "Ryan Doe", 
      "description": "My Rank" 
     } 
    ] 
} 
+0

会发生什么或没有发生。你会得到什么错误。 – 2012-03-09 20:55:59

+0

你有错误信息?什么似乎没有工作? – talnicolas 2012-03-09 20:56:17

+0

你有没有得到任何输出? [Javascript控制台](http://code.google.com/chrome/devtools/docs/console.html)中是否有任何错误消息? – millimoose 2012-03-09 20:56:25

回答

3

试图循环,它看起来像你可能想:

$。每个(json.rank,功能(I,项目)

+1

是的,我刚发布之后就测试了它,现在它完美运行。试图找到一种方法来删除问题,但由于您给出了正确的答案,它是属于你的。 – 2012-03-09 20:57:39

2

如果这是你的JSON响应,你需要这样的:

$.each(json.rank, function (i, item) { 
    alert(item.distID); 
    alert(item.name); 
    alert(item.description); 
}); 

这是因为您的JSON是一个名为rank的属性的对象,该属性包含您想要迭代的对象数组。因此,您通过json.rank$.each(),您将获得阵列中的每个对象item

添加了一些换行,以便您可以更好地看到它,这是你的JSON响应:

{ 
    "rank": [ 
     {"distID":"1","name":"John Doe","description":"My Rank"}, 
     {"distID":"2","name":"Jane Dow","description":"My Rank"}, 
     {"distID":"3","name":"Robin Doe","description":"My Rank"}, 
     {"distID":"4","name":"Ryan Doe","description":"My Rank"} 
    ] 
} 

因此,如果这是设置为你的成功的说法json,你可以看到数组是如何json.rank。然后,您可以访问.each()环路中的各个项目属性,其中item.distIditem.description等等。

-1

好吧,item.rank没有任何意义。 rank的值是一个JSON对象的数组。你真正想要的是循环排列的元素。此语法将是iffy,但

$.each(json.items.rank (i, item) { 
    alert(distId); 
}); 
+0

任何地方都没有名为'items'的数据元素。这是不正确的。 – jfriend00 2012-03-09 21:03:38