2013-10-03 58 views
0

我在我的代碼中有JSON.Parse的一些問題,我無法找到這個原因,我有一個函數調用兩個Ajax函數,一個在開始和另一個在成功功能。它的工作正常,但是當我試圖解析第二個響應代碼時沒有給出任何錯誤,並且真正的謎是破壞劑量給出了任何問題,但是當我使用變量來存儲像這樣的結果var list =JSON.parse(object);我的代碼破壞了,我不,這是什麼我當前的代碼背後的原因,下面JSON.Parse在javascript中導致錯誤

function getData() 
{ 
      $.ajax({ 
       type: "POST", 
       url: "MyPage.aspx/GetData", 
       data: JSON.stringify({ data: data}) 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (response) { 
        var result = JSON.parse(response.d); 
        var temp = 0; 
        for (var i = 0; i < result.length; i++) { 

         if (result[i].data > 1) { 
          var subList = JSON.parsegetFullData (result[i].id)); 
         } 

       } 
      }); 
} 
    function getFullData (id) { 
      var sublist; 
      $.ajax({ 
       type: "POST", 
       url: "MyPage.aspx/GetData2", 
       data: JSON.stringify({ id: id }), 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (response) { 
        return response.d; 
       } 
      }); 

     } 

任何思想被賦予將有很大的幫助

+0

你肯定'response.d'是包含JSON字符串?順便說一句,'return response.d;'來自回調不會有任何影響。 –

+0

@FelixKling正面 – Optimus

+0

然後它不會拋出一個錯誤。請發佈回覆。 –

回答

2

當您使用$.ajaxdataType:"json",響應已經被解析爲您服務。並且似乎沒有理由嘗試解析response.d

只需使用

$.ajax({ 
      type: "POST", 
      url: "MyPage.aspx/GetData", 
      data: JSON.stringify({ data: data}) 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (results) { 
       for (var i = 0; i < results.length; i++) { 
        console.log(results[i].id, results[i].LastName); 
+0

我知道服務器響應是一個序列化的集合,當我檢查response.d它是一個大字符串 – Optimus

+0

它是一個JSON字符串嗎?你爲什麼要把JSON放入JSON中? –

+0

我希望它作爲JSON對象不字符串,也是方法JSON.parse(數據)完美地在第一個函數 – Optimus