2012-03-09 219 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