java - 使用 jQuery 1.9 解析 JSON 时出错,但 eval 中没有错误

标签 java json jquery

我重写 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/

相关文章:

java - 创建具有未指定可变行长度的多维数组 (Java)

java - 什么是非法字节码?

json - Grep命令问题-程序输出中的Grep文本?

javascript - 如何使部分足够高以存储数据(fullpage.js)?

java - 从数据库设计决策中导出 XML、JSON

JavaFX - Canvas 上的可点击线

c# - json.net 列表序列化到 JSON 数组

android - 奇怪的 Google Play Batch IAP API 错误

javascript - BxSlider:页面刷新/更改时保存 slider 的位置

javascript - 使用 jquery 将多个 list 项目添加或删除到另一个列表