2014-08-29 47 views
-1

我想從一個PHP腳本得到一些JSON。當我嘗試解析它時,它失敗了。從php腳本JSON.parse

在PHP腳本我使用json_encode($結果),並在jQuery的部分我用這個代碼:

complete: function(response){ 
       console.log(response); 
       var parsed = JSON.parse(response); 
       var arr = []; 
       for(var x in parsed){ arr.push(parsed[x]);} 
       jQuery('#input_1_3').val(arr[1]); 
       jQuery('#input_1_4').val(arr[2]); 
      } 

當我登錄到控制檯響應我得到這個:

Object { readyState=4, responseText="{"personeelsNummer":"1",...oonplaats":"Meerhout"}0", status=200, meer...} 

我在這裏沒有看到什麼?

+0

它看起來像你的json在'response.responseText'裏面。不知道爲什麼最後有0。 – chiliNUT 2014-08-29 19:27:08

+0

首先嚐試添加'dataType:'json''到你的ajax;其次,使用'success'而不是'complete'來接收已解析的json。 – RaphaelDDL 2014-08-29 19:28:30

回答

1

首先第一件事情:

確保您$.ajaxdataType: "json"爲的設置的一部分。

$.ajax({ 
    dataType: 'json', 
    //other settings 
}); 

二:

您正在使用complete。在complete上,參數是jqXHRtextStatus。因此,它不在那裏解析,它是整個xhr對象。

對於這個你必須使用success。這裏的參數是datatextStatusjqXHR,並且如果您按照我的說法使用dataType(並且您的JSON有效),那麼data將是您已解析的json。

$.ajax({ 
    dataType: 'json', 
    //other settings 
    success: function(data, textStatus, jqXHR){ 
      //my awesome parsed json it's on 'data' 
    }, 
    error: function(jqXHR, textStatus, errorThrown){ 
      //my awful json which failed to parse, and I can know the error on 'errorThrown' 
    } 
}); 
+0

我最初使用了succes,它沒有被調用。 .. – 2014-08-29 19:34:44

+0

@ stijn26因爲你的JSON格式不正確。看到你發佈的responseText:'{「personeelsNummer」:「1」,... oonplaats「:」Meerhout「} 0」'。 'Meerhout'後面有'0',不應該在那裏。這就是爲什麼我添加了'error',所以你可以使用'errorThrown'來查看錯誤信息。 – RaphaelDDL 2014-08-29 19:38:55

+0

啊好的,但0到達那裏?我沒有在任何地方使用0's – 2014-08-29 19:40:24

1

使用:

var parsed = JSON.parse(response.responseText); 

response與不僅僅是從服務器請求的文本內容更多屬性的對象。

+0

立即使用: complete:function(response){ var arr = []; (var x in response){arr.push(response [x]);} jQuery('#input_1_3')。val(arr [1]); jQuery('#input_1_4')。val(arr [2]); } 這讓我跟着錯誤:TypeError:a.toLowerCase不是函數 – 2014-08-29 19:31:59

+0

第一個答案在你的上下文中是錯誤的。我編輯它。在不解析的情況下使用'JSON.parse(response.responseText)'或'success'事件。 – Votto 2014-08-29 19:35:05

+0

SyntaxError:JSON.parse:JSON數據的第1行第66列的JSON數據之後出現意外的非空白字符。 由於JSON背後的0,不知道爲什麼它存在。 – 2014-08-29 19:38:23