gpt4 book ai didi

jquery - 如何使用jquery解析json对象

转载 作者:行者123 更新时间:2023-12-03 22:52:37 25 4
gpt4 key购买 nike

我认为这是一个非常基本的问题,但我花了几个小时寻找答案但没有运气,我有以下 json 对象(使用 play!Framework 生成)

{
"preg.pregunta": [{
"message":"Debes escribir una pregunta",
"key":"preg.pregunta",
"variables":[]
}],
"preg":[{
"message": "validation.object",
"key":"preg",
"variables":[]
}]
}

这是我的 jquery 代码

$.ajax({
type: $target.attr('method'),
data: dataString,
url:$target.attr('action'),
dataType: "json",
beforeSend: function() {
//some stuff
},
success:function(response){
//some stuff
},
error: function(response){
//I want to use the json response here.
}
});

我想获取所有内容preg.pregunta(messagekey值)

有什么帮助吗?

更新:好吧,我没有足够的声誉来回答自己,这是我迄今为止发现的。

好吧,也许这会更明显,或者我必须多学习一点;我发现如果 JSON 响应出现 HTTP 错误(本例中为 400),则 jQuery 无法正确解析该响应。

有人知道为什么会出现这种行为吗?

我刚刚在 success 处理程序中测试了这段代码,并且工作完美!

$.ajax({
type: $target.attr('method'),
data: dataString,
url:$target.attr('action'),
dataType: "json",
beforeSend: function() {
},
success:function(response){
//It is working perfectly!
$.each(response,function(object){ //first loop of the object
$.each(response[object],function(values){ //looping inside arrays
console.log(response[object][values].key) //getting value "key"
console.log(response[object][values].message) //getting value "message"
});
})
},
error: function(response){
//nothing happens here
}
});

更新2。

经过大约 2 个小时的搜索,我找到了一个简单的解决方案:

error: function(response){
//Note the jQuery.parseJSON function
var response = jQuery.parseJSON(response.responseText);
$.each(response,function(object){
$.each(response[object],function(values){
console.log(response[object][values].key)
console.log(response[object][values].message)
});
})
}

说明:当使用错误处理程序时,jQuery 返回一个描述错误的复杂对象,responseText 包含从服务器检索的数据,因此,您必须使用 parseJSON 函数解析它。

希望这有帮助!

最佳答案

试试这个:

error: function(response) {
var pregunta = response["preg.pregunta"][0].message;
var key = response["preg.pregunta"][0].key;
},

如果 preg.pregunta 数组中有多个值,您需要循环并用迭代变量替换 [0]

另外,我不太明白为什么您只想访问 error 处理程序中的响应?

最后,访问 JSON 的代码是原生 JavaScript。这是因为当您收到响应时,它已转换为 POJS 对象,不需要 jQuery。

关于jquery - 如何使用jquery解析json对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10769156/

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