实体类:
public class User { private String id; //有这个注解的属性,不会转换为json @JsonIgnore private String name; .......
后台发送ajax请求:
<script type="text/javascript"> $(function(){ $("#ajax").click(function(){ $.ajax({ type:"post", url:"/json/test", success:function(user){ alert(user.id + "---------" + user.name); }, dataType:"json" }); }); }); </script>
controller的写法:
1. 使用注解 @ResponseBody
@RequestMapping("/test1")
public @ResponseBody User test1(){
User user = new User("123456", "张小三");
return user;
}
2. 使用Gson,将对象序列化为json ,
使用Gson:
@RequestMapping("/test")
public void test(HttpServletResponse response){
try {
User user = new User("123456", "张晓晓");
//把对象序列化为json类型
String json = new Gson().toJson(user);
//设置响应类型和编码类型
response.setContentType("application/json;charset=UTF-8");
//把json响应回页面
response.getWriter().print(json);
} catch (IOException e) {
e.printStackTrace();
}
}
3.使用 jackson:
@RequestMapping("/test4")
public void test4(HttpServletResponse response) throws Exception{
User user = new User("123456", "张晓晓");
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(user);
//设置响应类型和编码类型
response.setContentType("application/json;charset=UTF-8");
//把json响应回页面
response.getWriter().print(json);
}
