jQuery不会从AJAX查询解析我的JSON

我无法解析使用jQuery.ajax()从我的服务器返回的一些JSON数据

要执行我使用的AJAX:

$.ajax({
  url: myUrl,
  cache: false,
  dataType: "json",
  success: function(data){
    ...
  },
  error: function(e, xhr){
    ...
  }
});  

如果我返回一组项目,那么它工作正常:

[ { title: "One", key: "1" }, { title: "Two", key: "2" } ]

成功函数被调用并接收正确的对象。

但是,当我试图返回一个单一的对象时:

{ title: "One", key: "1" } 

错误函数被调用,xhr包含'parsererror'。 我已经尝试在将服务器上的JSON发送到服务器之前在服务器上的括号中包装JSON,但它没有区别。 然而,如果我将内容粘贴到Javascript中的字符串中,然后使用eval()函数,它会完美地评估它。

任何想法我做错了什么?

安东尼


您的服务器是否将数据作为内容类型"*/json" ? 如果不是,请相应地修改响应标头。 例如,发送"application/json"应该没问题。


根据json.org规范,你的回报是无效的。 名字总是被引用的,所以你应该回来

{ "title": "One", "key": "1" }

[ { "title": "One", "key": "1" }, { "title": "Two", "key": "2" } ]

这可能不是你的设置的问题,因为你说其中一个现在可以工作,但是它应该被修正以保证正确性,以防将来需要切换到另一个JSON解析器。


JSON字符串用引号括起来; 单引号不是有效的替代品。

{"who": "Hello World"}

是有效的,但这不是...

{'who': 'Hello World'}

虽然不是OP的问题,但认为值得注意其他人登陆这里。

链接地址: http://www.djcxy.com/p/1249.html

上一篇: jQuery won't parse my JSON from AJAX query

下一篇: How do you return a JSON object from a Java Servlet