1

我无法解析从 ajax 中的 servlet 返回的 tje Json 对象,

我需要将 json 对象值放在相对字段中

从我的 java 代码中,我以 JSON 的形式发送以下字符串

String  webVisitorDetails = "{"+"companyName : \""+webVisitor.getCompanyName()+ "\","+
                                                "address : \""+webVisitor.getProfessionalAddress()+ "\","+
                                                "city : \""+webVisitor.getCity()+ "\","+
                                                "zipCode : \""+webVisitor.getZipCode()+ "\","+
                                                "clientId : \""+webVisitor.getCustomerAccountNumber()+ "\"}";

在阿贾克斯

$.ajax({
    url: "ships",
    data: {
        email: email.toString()
    },
    success: function(data) {
        $.each(data, function(k, v) {
            console.log(k + " Value " + v);
            $("#city").text(v.city);
            $("#zipcode").text(v.getZipCode);
            $("#Adress").text(v.getProfessionalAddress);
        });
    },
    error: function(data) {
        console.log("error:", data);
    },
    type: "post",
    datatype:"json",
});
4

3 回答 3

2

请注意,jQuery 设置dataType带有大写 T。要手动进行 JSON 解析,请使用该parseJSON函数。但是,如果Content-Type将 servlet 响应设置为application/json,则应自动检测数据类型。

解决此问题后:它有效吗?data你的处理程序的参数值是success多少?

console.debug(data);

正如 Neal 已经说过的,JSON 解析需要从 jQuery 1.4 开始的有效 JSON 字符串。您可以验证您的 JSON jsonlint.com

在 jQuery 1.4 中,JSON 数据以严格的方式解析;任何格式错误的 JSON 都会被拒绝并引发解析错误。(有关正确的 JSON 格式的更多信息,请参阅 json.org。)

为避免手动构建 JSON 字符串,请使用JSON-java处理器(来自iNan 的评论)或json.org上列出的其他 Java 实现。

于 2012-07-13T12:31:32.243 回答
0

你的json字符串不正确

必须用双引号括起来。

在此处阅读要求

于 2012-07-13T12:27:31.413 回答
0

如果由于单反逗号 (') 而造成问题,那么只需执行以下操作:

jQuery.parseJSON(data.replace(/'/g, '"'))

如果是这种情况,那么它应该对你有用......

于 2012-07-13T12:52:53.803 回答