spring MVC 返回JSON对象工具类

package com.wlwq.workers.controller.enums;
/**
  *  定义响应的状态码
 * @author ZGZ
 *
 */
public enum ResponseCode {
    
       SUCCESS(1,"查询成功"),
       ERROR(2,"系统异常"),
       NEED_LOG(3,"请先登录");
       
       
       private int code;
       private String msg;
       
             
    private ResponseCode(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }
    public int getCode() {
        return code;
    }
    public void setCode(int code) {
        this.code = code;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
       
       
}
 

 

 

package com.wlwq.workers.controller.utl;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.wlwq.workers.controller.enums.ResponseCode;

/**
 * 封装后端返回的Json数据
 * @author ZGZ
 *
 * @param <T>
 */
//序列化该对象时  属性值为null 不序列化该字段
@JsonInclude(Include.NON_NULL)
public class ServerResponse<T> {
    /**
          *  返回的状态码
     */
    private int code;
    /**
          * 返回的数据
     */
    private T data;
    /**
      * 返回的提示信息
     */
    private String msg;
    
    //getter、setter方法
    public int getCode() {
        return code;
    }
    public void setCode(int code) {
        this.code = code;
    }
    public T getData() {
        return data;
    }
    public void setData(T data) {
        this.data = data;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }

    
    //构造函数
    /**
    * 操作成功时,返回数据
    * @param statu
    * @param data
    * @param msg
    */
    
    public ServerResponse(int code, T data, String msg) {
        this.code = code;
        this.data = data;
        this.msg = msg;
    }

    
    public ServerResponse(int code) {
        this.code = code;
    }
     
    public ServerResponse(T data) {
        super();
        this.data = data;
    }
    /**
    * 操作失败时,不返回数据
    * @param statu
    * @param msg
    */
    public ServerResponse(int code, String msg) {
    this.code = code;
    this.msg = msg;
    }
    
    
    //泛型方法

    /**
    * 成功返回数据(默认 状态码为:1 ,提示消息:查询成功)
    * @param data
    * @param <T>
    * @return
    */
    public static <T> ServerResponse<T> createBySuccess(T data){
    return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(),data,ResponseCode.SUCCESS.getMsg());
    }
    
    /**
    * 成功返回数据(自定义提示消息)
    * @param msg
    * @param data
    * @param <T>
    * @return
    */
    public static <T> ServerResponse<T> createBySuccess(T data,String msg){
    return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(),data,msg);
    }
    
    /**
    * 成功返回数据(自定义提示消息与状态码)
    * @param code
    * @param data
    * @param msg
    * @param <T>
    * @return
    */
    public static <T> ServerResponse<T> createBySuccess(int code,T data,String msg){
    return new ServerResponse<T>(code,data,msg);
    }
    
    
    /**
    * 成功返回(只返回默认状态码)  可用与登录校验
    * @param <T>
    * @return
    */
    public static <T> ServerResponse<T> createByCheckSuccess(){
    return new ServerResponse<T>(ResponseCode.SUCCESS.getCode());
    }
    
    /**
    * 成功返回(只返回自定义状态码)  可用与登录校验
    * @param <T>
    * @return
    */
    public static <T> ServerResponse<T> createByCheckSuccess(int code){
    return new ServerResponse<T>(code);
    }
    
    /**
      * 成功返回(只返回要传入的对象)  
     */
    public static <T> ServerResponse<T> createByDataSuccess(T data){
        return new ServerResponse<T>(data);
    }
    
    /**
    * 返回错误信息(自定义错误状态码与提示消息)
    * @param code
    * @param msg
    * @param <T>
    * @return
    */
    public static <T> ServerResponse<T> createByError(int code,String msg){
    return new ServerResponse<T>(code,msg);
    }
    
    
    /**
    * 返回错误信息(自定义提示消息)
    * @param msg
    * @param <T>
    * @return
    */
    public static <T> ServerResponse<T> createByError(String msg){
    return new ServerResponse<T>(ResponseCode.ERROR.getCode(),msg);
    }
    
    /**
    * 返回错误信息(自定义状态码)
    * @param code
    * @param <T>
    * @return
    */
    public static <T> ServerResponse<T> createByError(int code){
    return new ServerResponse<T>(code,ResponseCode.ERROR.getMsg());
    }
    
    /**
    * 返回错误信息(默认: 状态码 2, 提示消息 系统异常 )
    * @param <T>
    * @return
    */
    public static <T> ServerResponse<T> createByError(){
    return new ServerResponse<T>(ResponseCode.ERROR.getCode(),ResponseCode.ERROR.getMsg());
    }
    
    
    
    /**
      * 未登录验证 ( 默认 状态码:3  提示:请先登录)
     * @return
     */
    public static <T> ServerResponse<T> createByNeedLogin(){
    return new ServerResponse<T>(ResponseCode.NEED_LOG.getCode(),ResponseCode.NEED_LOG.getMsg());
    }
    
    /**
      * 未登录验证 (自定义状态码已提示消息)
     * @return
     */
    public static <T> ServerResponse<T> createByNeedLogin(int code, String msg){
    return new ServerResponse<T>(code,msg);
    }
   
    
}
 

示例

    @RequestMapping("/sel")
    public ServerResponse<Map<String,Object>> selServiceList(String token,ServiceOrder serviceOrder){        
        Map<String,Object> map=new HashMap<String,Object>();
        try{
            OrdinaryUser user = ordinaryUserServiceImp.verification(token);
            if(user!=null){
                serviceOrder.setOrdinaryUserId(user.getId());
                List<Map<String, Object>> list = serviceOrderServiceImp.selList(serviceOrder);
                int totalRow = serviceOrderServiceImp.selListTotalRow(serviceOrder);
                if(totalRow==0){
                    map.put("list", "");
                    map.put("totalRow", totalRow);
                    return ServerResponse.createBySuccess(map);
                }else{
                    map.put("list", list);
                    map.put("totalRow", totalRow);
                    return ServerResponse.createBySuccess(map);
                }
            }else{
                    return ServerResponse.createByError();
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
                    return ServerResponse.createByError();
        }
        
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值