我想在jquery中使用$ .each值json时出错,以下是我的js代码和输出json_encode和错误。我该怎么办?
来自'url'(json_encode)的所有输出:http://pastebin.com/gEr0Aa3s
这是我的ajax调用,它给了我错误:
$.ajax({
type: "POST",
dataType: "json",
url: 'url',
data: dataString,
cache: false,
success: function (data) {
$.each(data.guide, function (index, value) {
$('#guide_name').append('<div>'+ value.guide +'</div>');
});
$.each(data.residence, function (index, value) {
$('#residence_name').append('<div id="'+value.hotel_id+'">'+ value.name_re +'</div>');
});
$.each(data.reunits, function (index, value) {
$('#residence_name .li_show').append('<li>'+value.name+'</li>');
});
},
"error": function (x, y, z) {
alert("An error has occured:\n" + x + "\n" + y + "\n" + z);
}
})
错误:
An error has occured:<br>
[object Object]<br>
error<br>
Not Found<br>
答案 0 :(得分:3)
您发布的数据无效JSON。
使用代码需要的是这样的结构:
{
"guide" : [ /* your guide array here */ ],
"residence" : [ /* your residence array here */ ],
"reunits" : [ /* your reunits array here */ ]
}
你应该在对象中的每个属性之间使用逗号(即,我放在每行的末尾),你有} {
。你也多次重复“居住”和“重新统一”,这是你可以通过不同的结构实现的,但不符合你的ajax成功代码的逻辑。
答案 1 :(得分:2)
您的JSON无效。要查看自己的错误,请转到http://jsonlint.com/,然后粘贴原始代码,然后点击“验证”。我怀疑在第10行中,您需要将}{
替换为,
。
编辑:实际上,在更好地查看代码时,我认为您可能需要将对象包含在数组中。请记住,JSON是分层的,并且对象不能一个接一个地声明,如下所示:{} {}
。相反,您需要将它们包含在顶级数组中:[{}, {}]
。
答案 2 :(得分:0)
除了你的json格式,你应该在下面修复:
url: 'url'
- &GT;如果网址是varialbe,请删除引号。
错误回调函数中的z
是HTTP状态的文本部分,而您收到Not Found
,表示您的网址不正常。