如何使用jquery解析json对象

发布时间:2020-08-11 发布网站:编程之家
编程之家收集整理的这篇文章主要介绍了如何使用jquery解析json对象编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我认为这是一个非常基本的问题,但我花了几个小时寻找没有运气的答案,我有以下json对象(使用play生成!框架)

{
    "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(消息和键值)中

有帮助吗?

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

好吧也许这将是显而易见的,或者我必须多学习一点;我发现jQuery没有正确解析JSON响应,如果它出现HTTP错误(在这种情况下为400).

有人知道为什么这种行为?

我刚刚在成功处理程序中测试了这段代码并且完美运行

$.ajax({
  type: $target.attr('method'),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].

另外,我不太明白你为什么只想在错误处理程序中访问响应?

最后,访问JSON的代码是本机javascript.这是因为当您收到响应时它已转换为POJS对象,不需要jQuery.

总结

以上是编程之家为你收集整理的如何使用jquery解析json对象全部内容,希望文章能够帮你解决如何使用jquery解析json对象所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入编程之家官方QQ群:1065694478
编程之家官方公众号

微信公众号搜索 “ 程序精选 ” ,选择关注!

微信公众号搜索 “ 程序精选 ”
精选程序员所需精品干货内容!