无法解析AJAX中servlet返回的JSON对象

Not able to parse the JSON object returned from servlet in AJAX

本文关键字:返回 JSON 对象 servlet AJAX      更新时间:2023-09-26

我无法解析ajax、中servlet返回的tje-Json对象

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

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

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

response.setContentType("application/json");
                response.getWriter().write(webVisitorDetails);

在ajax 中

$.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"
});

您忘记了逗号,应该引用您的值

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

编辑:确实=>引用您的密钥(以防万一)我不是一个真正的java专家,但是的,如果有一个类可以使用它。

还有。。。你不应该重新发明轮子。Java有一种完美的方法来创建"工作"JSON。

  Map obj=new LinkedHashMap();
  obj.put("name","foo");
  obj.put("num",new Integer(100));
  obj.put("balance",new Double(1000.21));
  obj.put("is_vip",new Boolean(true));
  obj.put("nickname",null);
  String jsonText = JSONValue.toJSONString(obj);
  System.out.print(jsonText);
  // Result: {"name":"foo","num":100,"balance":1000.21,"is_vip":true,"nickname":null}

将键和值放在引号中,并用逗号分隔对!

除了您的JSoN不正确之外(请参阅其他答案),您正在循环通过response对象,而您应该循环通过用作成功函数参数的data对象

除此之外,为了遍历数据,您必须从服务器返回一个数组,即用方括号([])括起json对象。

您可以从VDP的答案中看到,您的json格式不正确。每个参数后面都需要有一个逗号。

更多可能有用的提示:

  • 您可以通过将json粘贴到http://jsonlint.com/

  • 如果您在应用程序中进行了大量的json处理,我建议您使用标准的json库,如jsonsimple或gson。