ajax访问后台,得到一个对象,我怎么以json格式返回到前台。
问题描述:
ajax访问servlet,查询得到一个message对象,我怎么把这个对象以json的格式返回给前台,并显示在给定的div中。
答
[code="java"]public class JsonServlet extends HttpServlet {
private org.codehaus.jackson.map.ObjectMapper objectMapper = new org.codehaus.jackson.map.ObjectMapper();
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("application/json");
try {
User user = new User();
user.setId("1");
user.setName("user");
objectMapper.writeValue(resp.getOutputStream(), user);
} catch (Exception e) {
// TODO: handle exception
}
}
private static class User {
private String id;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
}[/code]
前台用jquery
[code="js"] $.post("", {}, function(user) {
alert(user.id, +" " + user.name);
}, "json");[/code]
答
jsonObject 将对象转换成json字符串 ,write出去;
ajax 的回调函数中用eval 将json对象转成js对象
答
先要对json格式进行了解,自己编程把得到的数据转换成json格式的string,例如:
{"name":"Kobe","age":36,"Job":"player"}
浏览器接收到这个string后,调用一下eval方法,就得到一个json对象了。
答
你可以把代码粘出来,大家好看看