在jQuery中读取复杂的JSON
我有以下复杂的jSON字符串,它在jQuery1.8中的Ajax调用中返回在jQuery中读取复杂的JSON,jquery,Jquery,我有以下复杂的jSON字符串,它在jQuery1.8中的Ajax调用中返回 listCountries({"totalResults":3,"countrynames":[ {"countryName":"Afghanistan","fName":"parks,area, ...","lng":1,"code":"continent"}, {"countryName":"Albenia","fName":"parks,area, ...","lng":2,"code":"continent"},
listCountries({"totalResults":3,"countrynames":[
{"countryName":"Afghanistan","fName":"parks,area, ...","lng":1,"code":"continent"},
{"countryName":"Albenia","fName":"parks,area, ...","lng":2,"code":"continent"},
{"countryName":"Algeria","fName":"parks,area, ...","lng":3,"code":"continent"}
]});
我想用这个JSON数据填充一个选择框
我正在做以下工作
$.getJSON(someurl)
.success(function (data) {
var list= "";
for (var i = 0; i < data.countrynames.length; i++) {
list += "<option value='" + data.countrynames[i].lng + "'>" + data.countrynames[i].countryName + "</option>";
}
$("#names").html(list);
但是,该列表不会被填充。有人能提出原因吗。还有一种更好的做法是循环使用这个JSON字符串并填充选择框。服务器没有返回JSON。它又回来了。当您从不同的域请求数据时,JSONP是您必须采取的额外步骤 这是JSON:
{"totalResults":3,"countrynames":[
{"countryName":"Afghanistan","fName":"parks,area, ...","lng":1,"code":"continent"},
{"countryName":"Albenia","fName":"parks,area, ...","lng":2,"code":"continent"},
{"countryName":"Algeria","fName":"parks,area, ...","lng":3,"code":"continent"}
]}
您的AJAX调用似乎没有请求JSONP,因此您的服务器代码似乎不正确。一个选项是修复服务器代码以返回JSON
或者,如果不能,则此代码将起作用
$.getJSON(someurl)
.success(function (data) {
// remove the listCountries function name, and the two parentheses.
// Then convert the string into an object
data = JSON.parse(data.substr(14, data.length - 16))
// you forgot the select opening & closing tags
var list= "<select>";
for (var i = 0; i < data.countrynames.length; i++) {
list += "<option value='" + data.countrynames[i].lng + "'>" + data.countrynames[i].countryName + "</option>";
// you forgot the closing bracket
}
list += '</select>';
$("#names").html(list);
}
您的代码在这种情况下运行良好:您是否检查了控制台中的响应,以确保数据按预期返回到正在执行的成功处理程序中?也适用于ajax:。一定还有别的事情发生了-你能设置一个演示吗?我做的是这样的..我去输入粘贴在我原始帖子中的json..它给出了一个错误SyntaxError:意外的标记l。有人能解释我的代码中的错误以及如何处理这个错误吗?我还注意到,在这两个演示中,您都没有考虑到json字符串以listCountries开头。这就是你的演示有效而我的演示无效的原因吗