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

时间:2012-07-13 11:04:54

标签: java javascript jquery

我无法解析从ajax,

中的servlet返回的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"
});

5 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:3)

另外......你不应该重新发明轮子。 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}

答案 2 :(得分:0)

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

答案 3 :(得分:0)

除了你的JSoN不正确(参见其他答案)之外,你循环遍历一个response对象,而你应该遍历你用作成功函数参数的data对象< / p>

除此之外,为了循环数据,您必须从服务器返回一个数组,即将json对象括在方括号中( [] )。

答案 4 :(得分:0)

从VDP的答案可以看出,你的json形成不正确。你需要在每个参数后面加一个逗号。

可能有用的一些指示:

  • 您可以通过在http://jsonlint.com/

  • 粘贴json来验证您的json是否正确形成
  • 如果您在应用程序中进行了大量的json处理,我建议使用标准的JSON库,例如json-simplegson