2015-09-17 69 views
1

我試圖顯示,這是獲得退還給我數據意外標記ü我的JSON數據通過jQuery的AJAX返回

的console.log(數據)顯示:

{"Data":[[true,true,false],null]} 

這是數據,最終是3個複選框的值。

我不知道如何解決爲什麼我收到

Uncaught SyntaxError: Unexpected token u 

我推測,U =不確定的。我是否需要POST而不是?我已經嘗試沒有contentType評論了。
很明顯我有DATA回來就是$ parseJSON(data.d)有問題嗎?

$(document).ready(function() { 
     jQuery.support.cors = true; 
     $.ajax({ 
      url: '/GetCheckBox/3521', 
      type: 'GET', 
      dataType: 'json', 
      data: {}, 
      //contentType: "application/json; charset=utf-8", 
      success: function (data) { 
       //alert(data); 
       console.log(data); 
       //WriteResponses(data); 
       var objdata = $.parseJSON(data.d); 
       WriteResponses(objdata); 
      }, 
      error: function (x, y, z) { 
       alert(x + '\n' + y + '\n' + z); 
      } 
     }); 

     //Displays in a Table 
     function WriteResponses(allNews) { 

      alert(allNews); 

      var strResult = "<table><th>Name</th><th>Student ID</th><th>Gender</th><th>Age</th>"; 
      $.each(allNews, function (index, news) { 
       strResult += "<tr><td>" + news.StormOut + "</td><td> " + news.StormOut + "</td><td>" + news.StormOut + "</td><td>" + news.StormOut + "</td></tr>"; 
      }); 
      strResult += "</table>"; 
      $("#divResult").html(strResult); 
     } 

    }); 
+0

http://jsonlint.com/說它是有效的JSON –

回答

2

如果console.log(data);顯示

{"Data":[[true,true,false],null]} 

然後data字符串(請參閱下面的可能原因)。你爲什麼試圖解析data.d?字符串沒有屬性ddata.d返回undefined$.parseJSON(undefined)會引發您收到的錯誤。

改爲使用$.parseJSON(data)


僅供參考,本是正確的,到目前爲止,設置dataType: json讓jQuery的自動解析您的JSON。但是,鑑於console.log輸出,看起來您的數據是雙編碼。即數據首先轉換爲JSON,結果再次編碼爲JSON。

這當然是錯的。您應該確保數據只編碼一次,然後刪除$.parseJSON呼叫。

+0

。 jQuery自動將它解析爲JSON,因爲你已經指定了JSON作爲數據類型(dataType:json,)'哪個是哪個 – guradio

+0

@Pekka:查看我的附加註釋。 –

+0

objData = $ .parseJSON(data); alert(objData); - > [object Object] –

1

您實際上並不需要$.parseJSON。 jQuery自動將其解析爲JSON,因爲您已將JSON指定爲數據類型(dataType: json,)。

正如您在控制檯日誌中看到的那樣,"Data"的值作爲數組返回 - 實際上是一個JavaScript數組,而不是JSON,它將被引號括起來,它是一個JSON字符串。

所以,只是交換該行以類似:

var objData = data["Data"]; 

它應該在jQuery的文檔工作得很好:)

更多信息:http://api.jquery.com/jQuery.getJSON/

+0

var objData = data.Data; - >「未捕獲的類型錯誤:無法讀取未定義的」 –

+0

「數據的屬性」長度「。數據[0] - >未捕獲TypeError:無法讀取未定義的屬性'0' –

+0

var objData = data.Data; alert(objData); - >顯示「未定義」 –