Javascript jQuery如何从responseText读取此JSON字符串

Javascript jQuery如何从responseText读取此JSON字符串,javascript,jquery,json,ajax,Javascript,Jquery,Json,Ajax,我在这里尝试了几乎所有的方法来处理堆栈溢出,但不知何故,我无法读取jQueryAjax中成功函数调用返回的JSON字符串数据。my success函数接收以下JSON字符串: Object { readyState = 4, responseText = "{" Response ":200," Data ":" 6 "," Message ":" 6 "}", status = 200, statusText: "OK" } 这是我的成功回调: success: fu

我在这里尝试了几乎所有的方法来处理堆栈溢出,但不知何故,我无法读取jQueryAjax中成功函数调用返回的JSON字符串数据。my 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");
   }
 }
当启动success函数并检查状态代码时,它执行console.log(“数据已提交”);语句成功,但我无法访问“数据”:“6”键/值对

到目前为止,我已经尝试过这样做:

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

还有很多其他的方法,但不是说“未定义”,就是给出错误。然而,当我输入console.log(obj)时,在控制台中它显示“obj”。这意味着我得到了一个JSON对象

请注意,我也尝试过:

obj = jQuery.parseJSON(responseText);
这给了我一个错误:SyntaxError:JSON.parse:JSON数据第1行第2列的意外字符


在这种情况下该怎么办?我希望能够提取键名“Data”的值,并将其value=“6”分配给变量。

成功回调的第一个参数是您需要的,而不是第三个参数。第一个参数将表示从服务器返回的响应主体。此外,您不需要在成功回调中检查除200个状态代码以外的任何其他代码。这就是
错误
回调的设计目的,因为如果服务器返回400状态代码,则不会触发成功回调

因此:

成功回调是


因此,第一个
数据将包含返回到
success
函数的数据。

response.response
response.data
response.Message
Hi@RoryMcCrossan感谢您的回复。我试着按照你的建议来做:obj=responseText;控制台日志(对象数据);然而,它表明:Unfinedhi@Rorymcrossan噢!成功了。谢谢你,伙计。这么简单的错误。请把它作为答案贴出来。这样我就可以标记它。response.response正在返回正确的值。在您提供的JSON对象中,响应和数据是同一对象的一部分。。。您是否尝试了response.Data而不是responseText。Data@Zafar达林得到了同样的答案。问题是您访问的
success
handler@oxfn哪里说他们不赞成?在$.ajax的文档中,两个参数下都没有提及:谢谢。成功了。成功了。罗里是第一个提到这件事的。如果他把它贴出来作为答案,我会把它标记为答案。不过,达林,你是对的。和罗里一样。谢谢你们,孩子们。这么简单的事情。我很惭愧:)@rorymcrossan对不起,文档中只提到了像
$.ajax({})这样的链式调用。success().error()
参数是OK@Zafar我认为你应该把达林的回答标记为接受。他解决了这个问题,解释了它,还改进了你的代码结构。非常感谢你。
obj = jQuery.parseJSON(responseText);
dataType: 'json',
success: function (response) {
    console.log("Data was submitted");
    console.log(response.Data);
},
error: function() {
    console.log("there was some error");
}