当前位置:  开发笔记 > 编程语言 > 正文

jQuery没有正确解析JSON

如何解决《jQuery没有正确解析JSON》经验,为你挑选了1个好方法。

我有个问题.我构建了一个脚本来向发回响应的内部链接发出请求.这是脚本的样子:

jQuery.get(callUrl, function(data){
              console.log(typeof data);
              jQuery.each(data.items, function(i,item){            

                                      console.log(i);

                                });
        },'json');

并且服务器发回的响应如下所示:

{"items":[            
  {
   "src": "gallery_item_data_Jc4EaLP6vlwd_large.jpg",
   "id": "83",
   "gallery_id": "30",
   "username": "admin"
  }]
}

我的问题是,当我解析"数据"时,它的类型总是字符串.我需要它成为一个对象,以便我可以查询它并用我的脚本解析它.为了解决问题的根源,我尝试将我的脚本与jQuery文档页面上的示例进行比较:

http://docs.jquery.com/Ajax/jQuery.getJSON

与此页面上的请求和我的请求的主要区别在于它使用getJSON方法.当我尝试将url用于我的服务器时,我根本没有得到任何响应,因此这是我选择get方法并将返回类型指定为"json"的主要原因.

我尝试了另一件事:我检查了JQuery示例用来查找它发回的Content-type标头的Flickr提要,认为我的提要有错误的标题,这就是Flickr提要:

Content-Type    application/x-javascript; charset=utf-8

这与我自己的Feed中的标题完全相同.所以我很困惑.有谁知道为什么会这样?



1> Mark Bell..:

JSON需要在它周围有括号,所以它应该是:

({"items":[            
  {
   "src": "gallery_item_data_Jc4EaLP6vlwd_large.jpg",
   "id": "83",
   "gallery_id": "30",
   "username": "admin"
  }]
})

然后,您应该能够使用getJSON,因为这是将数据作为对象获取的最简单方法.但是,您也可以eval()字符串并返回一个对象.

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有