如何使用$ .each为这个json

时间:2011-10-27 10:14:04

标签: javascript jquery json

我想在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>

3 个答案:

答案 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,表示您的网址不正常。