本文以Spring Boot-构建Spring Boot 第一个demo中项目为基础,可以先查看上一片文章。
添加User.java实体类和UserController.java。结构如下
Result.java代码如下:
package com.xiangty.common;
public class Result {
// 正确返回代码
private static final String SUCCESS_CODE = "10000";
// 错误返回代码
private static final String ERROR_CODE = "-10000";
// 状态代码
private String status;
// 信息
private String msg;
// 内容
private Object data;
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public Result() {}
public Result(String status, String msg, Object data) {
this.status = status;
this.msg = msg;
this.data = data;
}
public static Result ok(Object data) {
return ok("OK", data);
}
public static Result ok(String msg, Object data) {
return new Result(SUCCESS_CODE, "OK", data);
}
public static Result error(Object data) {
return error("ERROR", data);
}
public static Result error(String msg, Object data) {
return new Result(ERROR_CODE, msg, data);
}
}
User.java代码如下:
package com.xiangty.pojo;
public class User {
private String userName;
private String passWord;
private Integer age;
public User() {
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
UserController.java类代码如下:
package com.xiangty.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.xiangty.common.Result;
import com.xiangty.pojo.User;
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping("/getUser")
@ResponseBody
public User getUser() {
User u = new User();
u.setUserName("testName");
u.setAge(18);
u.setPassWord("passWord");
return u;
}
@RequestMapping("/getUserReturnResult")
@ResponseBody
public Result getUserReturnResult() {
User u = new User();
u.setUserName("testName");
u.setAge(18);
u.setPassWord("passWord");
return Result.ok(u);
}
}
启动项目,访问路径效果如下
一般的项目中,都回对返回类做一定的封装(上面的Resul.java类就是,不过这里的Result.java类不规范,只提供思路),访问一下路径显示结果如下:
Jackson的基本演绎法
User.java类中的修改如下:
添加@JsonIgnore注解
/**
* 后台推数据到前台的时候,会将passWord的信息忽略掉
*/
@JsonIgnore
private String passWord;
添加bitrhday属性和@JsonFormat注解
/**
* locale="zh" 表示中国
* timezone="GMT+8" 表示东八区
*/
@JsonFormat(pattern="yyyy-MM-dd hh:mm:ss", locale="zh", timezone="GMT+8")
private Date birthday;
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
UserController.java中,添加birthday属性值,整体代码如下
package com.xiangty.controller;
import java.util.Date;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.xiangty.common.Result;
import com.xiangty.pojo.User;
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping("/getUser")
@ResponseBody
public User getUser() {
User u = new User();
u.setUserName("testName");
u.setAge(18);
u.setPassWord("passWord");
u.setBirthday(new Date());
return u;
}
@RequestMapping("/getUserReturnResult")
@ResponseBody
public Result getUserReturnResult() {
User u = new User();
u.setUserName("testName");
u.setAge(18);
u.setPassWord("passWord");
u.setBirthday(new Date());
return Result.ok(u);
}
}
启动项目,查看效果,返回结果中没有了password的信息,birthday属性也按照指定的格式输出
如有错误请指正,谢谢。