我重写 java.Object.toString() 来获取 JSON,而无需在应用程序的服务器端使用任何 JSON 库。
jQuery 版本 1.9.0
和
JDK 版本 1.6.21
作为回应:
var jqxhr = $.ajax(url:"/getAvailableAddress.do",
type:"GET",
data:"cat=PreOrder&task=getAvailableAddress"+$(form).serialize() )
.done(function(response) { console.log(response); })
.fail(function() { alert("error"); })
.always(function() { alert("complete"); });
我从我的服务器获取以下 JSON:
{
"response": [
{
"alk": "123456",
"qualifier": "golden",
"buildingname": "Rose Appartments",
"buildingnumber": "1245",
"Street": "Nehru Street",
"Town": "Kolkata",
"Postcode": "MQK 456"
},
{
"alk": "123457",
"qualifier": "platinum",
"buildingname": "Lily Appartments",
"buildingnumber": "1585",
"Street": "Modi Street",
"Town": "Bangalore",
"Postcode": "476 AKQ"
}
]
}
当我尝试执行以下操作时:
var result = $.parseJSON(response);
alert(result.response[0].alk);
我在 Jquery 文件中遇到 JavaScript 错误:
Uncaught SyntaxError: Unexpected token o jquery-1.9.0.min.js:1
st.extend.parseJSON jquery-1.9.0.min.js:1
(anonymous function)
但是当我使用以下内容时,我根本没有收到任何错误。
var result = eval(response);
alert(result.response[0].alk);
我的 jQuery Parse 做错了什么?
最佳答案
如果未设置 dataType
属性,jQuery 会“智能地猜测”AJAX 请求的返回。它会相应地解析它。
jQuery.ajax()
dataType (default: Intelligent Guess (xml, json, script, or html))
如果您返回 JSON 以及正确的 header ,您将在回调中收到的数据将根据其预期类型进行预解析。无需再解析。
另外,检查 proper syntax of JSON 。您可以使用JSON validators可以在线获取。
关于java - 使用 jQuery 1.9 解析 JSON 时出错,但 eval 中没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16501990/