2011-10-27 27 views
0

我想要在jquery中使用$ .each值json時出現錯誤,下面是我的js代碼並輸出json_encode和錯誤。我該怎麼辦?

這從 '網址'(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> 
+2

您的錯誤消息很明顯。該文件未找到。 –

+1

嘗試將'url:'url''更改爲類似真實URL的內容,如'url:'http:// example.com/sample.json'' – Lapple

回答

3

您發佈的數據是無效的JSON。

你需要與你的代碼工作是什麼這樣的結構:

{ 
    "guide" : [ /* your guide array here */ ], 
    "residence" : [ /* your residence array here */ ], 
    "reunits" : [ /* your reunits array here */ ] 
} 

在哪裏,你應該有每個屬性之間用逗號在對象(即,我已經把在年底每行)你有} {。你也多次重複「居住」和「重聚」,這是你可以用不同的結構實現的東西,但不適合你的ajax成功代碼的邏輯。

2

您的JSON是不有效。要自己查看錯誤,請轉至http://jsonlint.com/,然後粘貼您的原始代碼,然後點擊「驗證」。我懷疑在第10行中,您需要用,替換}{

編輯:其實,更好看你的代碼,我想你可能需要把你的對象放在一個數組中。請記住,JSON是分層的,並且對象不能相互聲明,如下所示:{} {}。相反,您需要將它們放在頂級數組中:[{}, {}]

0

除了你的JSON格式,你應該修正如下:

url: 'url' - >如果URL varialbe,刪除引號。

您錯誤回調函數中的z是HTTP狀態的文本部分,並且您收到Not Found,這表示您的URL不正常。