簡體   English   中英

jQuery如何從responseText讀取這個JSON字符串

[英]jQuery how to read this JSON string from responseText

我幾乎已經嘗試過堆棧溢出,但不知怎的,我無法讀取jquery ajax中成功函數調用返回的JSON字符串數據。 我的success函數接收以下JSON字符串:

Object {
  readyState = 4, responseText = "{"
  Response ":200,"
  Data ":"
  6 ","
  Message ":"
  6 "}", status = 200, statusText: "OK"
}

這是我成功的回調:

success: function(response, msg, responseText) {
   if (response.Response == 200) {
     console.log("Data was submitted");
     var obj = responseText;

     console.log(typeof obj);
   } else if (response.Response == 400) {
     console.log("there was some error");
   }
 }

當觸發成功函數並檢查狀態代碼時,它執行console.log(“數據已提交”); 聲明成功,但是,我無法訪問“數據”:“6”鍵/值​​對。

到目前為止,我嘗試過這樣做:

var obj = responseText;
console.log(obj.Data);

console.log(obj.data[1]);

和許多其他方式,但要么它說“未定義”或給出和錯誤。 但是,當我在console.log(obj)時,在控制台中顯示'obj'。 這意味着我得到一個JSON對象。

請注意,我也嘗試過:

obj = jQuery.parseJSON(responseText);

這給了我一個錯誤:SyntaxError:JSON.parse:JSON數據的第1行第2列的意外字符

在這種情況下該怎么辦? 我希望能夠提取鍵名“Data”的值:並將其value =“6”賦值給變量。

成功回調的第一個參數是您需要的,而不是第三個。 第一個參數表示從服務器返回的響應主體。 此外,您無需在成功回調中檢查不同於200狀態代碼的任何內容。 這就是error回調的設計原因,因為如果您的服務器返回400狀態代碼,將永遠不會觸發成功回調。

所以:

dataType: 'json',
success: function (response) {
    console.log("Data was submitted");
    console.log(response.Data);
},
error: function() {
    console.log("there was some error");
}

成功回調是success: function(data, textStatus, jqXHR )

所以第一, data將包含返回到success函數的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM