springboot返回json

对返回的json做一些额外的封装: 

/**
 * @Description: 自定义响应数据结构
 * 				这个类是提供给门户,ios,安卓,微信商城用的
 * 				门户接受此类数据后需要使用本类的方法转换成对于的数据类型格式(类,或者list)
 * 				其他自行处理
 * 				200:表示成功
 * 				500:表示错误,错误信息在msg字段中
 * 				501:bean验证错误,不管多少个错误都以map形式返回
 * 				502:拦截器拦截到用户token出错
 * 				555:异常抛出信息
 */
@Data
public class JSONResult {

    // 响应业务状态
    private Integer status;

    // 响应消息
    private String msg;

    // 响应中的数据
    private Object data;
    
    private String ok;	// 不使用

    public static JSONResult build(Integer status, String msg, Object data) {
        return new JSONResult(status, msg, data);
    }

    public static JSONResult ok(Object data) {
        return new JSONResult(data);
    }

    public static JSONResult ok() {  
        return new JSONResult(null);
    }
    
    public static JSONResult errorMsg(String msg) {
        return new JSONResult(500, msg, null);
    }
    
    public static JSONResult errorMap(Object data) {
        return new JSONResult(501, "error", data);
    }
    
    public static JSONResult errorTokenMsg(String msg) {
        return new JSONResult(502, msg, null);
    }
    
    public static JSONResult errorException(String msg) {
        return new JSONResult(555, msg, null);
    }

    public JSONResult() {

    }

    public JSONResult(Integer status, String msg, Object data) {
        this.status = status;
        this.msg = msg;
        this.data = data;
    }

    public JSONResult(Object data) {
        this.status = 200;
        this.msg = "OK";
        this.data = data;
    }

    public Boolean isOK() {
        return this.status == 200;
    }

  
}

 

@RestController
@RequestMapping("/user")
public class UserController {
	
	public User getUser() {
		User user=new User();
		user.setName("cm");
		user.setAge("10");
		user.setPassword("123");
		user.setBirthday(new Date());
		return JOSNResult.ok(u);
	}

Jackson的基本演绎法: 

@Data
public class User implements Serializable{
	private String name;
	@JsonIgnore  //返回客户端不显示密码
	private String password;
	private String age;
	@JsonFormat(pattern="yyyy-MM-dd hh:mm:ss a",locale="zh",timezone="GMT+8")
	private Date birthday;
	@JsonInclude(Include.NON_NULL)  //空的就忽略不显示
	private String description;
}

 

你可能感兴趣的:(springboot)