gpt4 book ai didi

javascript - jQuery 如何从 responseText 中读取这个 JSON 字符串

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:32:38 26 4
gpt4 key购买 nike

我几乎在所有地方都尝试过堆栈溢出,但不知何故我无法读取从 jquery ajax 中的成功函数调用返回的 JSON 字符串数据。我的成功函数接收到以下 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("Data was submitted");语句成功,但是,我无法访问“数据”:“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”的值:并将其值 ="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");
}

关于javascript - jQuery 如何从 responseText 中读取这个 JSON 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34438712/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com