【发布时间】:2013-09-15 12:59:19
【问题描述】:
我正在尝试调用返回有效 JSON 的 Web 服务。输出示例如下(包含两个条目的列表):
{"d":"[{\"Id\":9,\"Name\":null,\"User\":null,\"Email\":\"email@gmail.com\",\"Phone\":\"121212121\",\"Address\":null,\"Address2\":null,\"City\":null,\"ZipCode\":\"8700\",\"Country\":null,\"TeachingSkills\":[]},{\"Id\":11,\"Name\":null,\"User\":null,\"Email\":\"email@gmail.com\",\"Phone\":\"1212121\",\"Address\":null,\"Address2\":null,\"City\":null,\"ZipCode\":\"3520\",\"Country\":null,\"TeachingSkills\":[]}]"}
现在我想迭代这个列表中的项目,并将名称打印出来。
所以我尝试了以下方法:
function loadTutors() {
var url = '<%= ResolveUrl("~/services/tutorservice.asmx/gettutors") %>';
$.ajax({
type: "POST",
data: "{'data':'" + 'test-data' + "'}",
url: url,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (d) {
loadMap(d);
},
error: function () {
}
});
}
function loadMap(tutors) {
var locations = [];
$.each(tutors.d, function (obj) {
$('#text').append(obj.Email);
});
});
标签文本的输出为空。如果我说$.each(tutors) 也是空的吗?
我尝试了很多版本,我输出的最好的是一长串随机数,我不知道从哪里来。
我在这里做错了什么?
编辑:
从答案中尝试。
解析为 JSON 并迭代 - 这会导致许多带有数字的警报框 (0..1...2...3..)
function loadTutors() {
var url = '<%= ResolveUrl("~/services/tutorservice.asmx/gettutors") %>';
$.ajax({
type: "POST",
data: "{'data':'" + 'test-data' + "'}",
url: url,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (d) {
loadMap(JSON.parse(d.d));
},
error: function () {
}
});
}
function loadMap(tutors) {
var locations = [];
$.each(tutors, function (obj) {
alert(obj.toString());
$('#text').append(obj.Email);
}); });
【问题讨论】:
标签: jquery asp.net json asmx each