我无法解析从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"
});
答案 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-simple或gson。