實體類:
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);
}
