Tôi có JSON sau đây được trả về trong một biến gọi là dữ liệu.
ĐÂY LÀ JSON MÀ ĐƯỢC TRỞ LẠI ...
[
{"Id": 10004, "PageName": "club"},
{"Id": 10040, "PageName": "qaz"},
{"Id": 10059, "PageName": "jjjjjjj"}
]
và tôi đang cố gắng lặp lại bộ sưu tập bằng $ .each nhưng tôi đang gặp vấn đề trong đó cảnh báo hiển thị không xác định. Tôi đã thử rất nhiều cú pháp khác nhau nhưng dường như không thể tìm ra điều này.
JQuery tôi đang sử dụng là
$.each(data, function(i, item) {
alert(item.PageName);
});
Ai đó có thể chỉ cho tôi phương hướng đúng không?
EDIT Đây là mã tôi đang sử dụng để lấy dữ liệu
$.getJSON('/Cms/GetPages/123', null, function(data) {
fillSelect(data);
});
và đây là chức năng được gọi khi gọi lại
function fillSelect(data) {
alert(data);
$.each(data, function(i, item) {
alert(item.PageName);
});
}
EDIT 2 Điều này hơi khó hiểu với tôi, theo các tài liệu nó sẽ hoạt động như tôi có, nhưng nó không. Theo fiddler, tiêu đề cho thấy: -
Content-Type: application/json; charset=utf-8
và JSON là chính xác ở trên. Tôi đang sử dụng chrome nếu điều này làm cho bất kỳ khác biệt. Sẽ kiểm tra trong IE và FF ....
EDIT 3
sử dụng $ .get tạo ra
"[\r\n {\r\n \"Id\": 10041,\r\n \"PageName\": \"01234567890\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 2\r\n },\r\n {\r\n \"Id\": 10001,\r\n \"PageName\": \"about\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 1\r\n },\r\n {\r\n \"Id\": 10056,\r\n \"PageName\": \"fdgdfgdfg\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 1\r\n },\r\n {\r\n \"Id\": 10052,\r\n \"PageName\": \"hjkhjk\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 2\r\n },\r\n {\r\n \"Id\": 10059,\r\n \"PageName\": \"jjjjjjj\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 1\r\n },\r\n {\r\n \"Id\": 10057,\r\n \"PageName\": \"qqqqq\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 2\r\n },\r\n {\r\n \"Id\": 10054,\r\n \"PageName\": \"qwqw\",\r\n \"MetaId\": 1000,\r\n \"TemplateId\": 2\r\n }\r\n]"