java web接口返回json数据时总是少一个属性

controller接口返回的代码如下:

返回的result对象如下:


/**
 * @Description 返回结果实体对象
 * @Author sunchao
 * @Date: 2017-11-29 14:43
 * @Mender: libing
 */
public final class Result {

    private int code;
    private String msg;
    private Object result;

    public Result() {
    }

    public static Result paramFail = new Result(Code.ParamError.value, false, Msg.ParamError.value());
    public static Result programFail = new Result(Code.InnerError.value, false, Msg.InnerError.value());

    public Result(int statusCode, Object result) {
        this(statusCode, result, "");
    }

    public Result(int statusCode, Object result, String msgInfo) {
        this.msg = msgInfo;
        this.code = statusCode;
        this.result = result;
    }

    public static Result success(Object result) {
        Result r = new Result(Code.Success.value, true, null);
        r.setResult(result);
        return r;
    }


    /**
     * 返回参数错误结果
     * @param result_obj   返回的结果
     * @return
     */
    public static Result getParamErrorResult(Object result_obj){
        Result result=getResult(result_obj);
        result.setCode(Result.Code.ParamError.value());
        if(ParamUtil.isEmpty(result.getMsg())){
            result.setMsg(TipsMessage.PARAM_ERROR);
        }
        return result;
    }

    /**
     * 返回内部错误结果
     * @param result_obj   返回的结果
     * @return
     */
    public static Result getErrorResult(Object result_obj){
        Result result=getResult(result_obj);
        result.setCode(Result.Code.UnKnowError.value());
        if(ParamUtil.isEmpty(result.getMsg())){
            result.setMsg(TipsMessage.INNER_ERROR_MSG);
        }
        return result;
    }
    public Result(int statusCode) {
        this(statusCode, null, "");
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    private static Result getResult(Object result_obj){
        Result result=new Result();
        if (result_obj != null) {
            if(result_obj instanceof Result) {
                result = (Result) result_obj;
            }else{
                result.setResult(result_obj);
            }
        }else{
            result.setResult(result_obj);
        }
        if(result.getMsg()==null){
            result.setMsg("");
        }
        return result;
    }

    public void setResult(Object result) {
        this.result = result;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public enum Code {
        InnerError(-2),
        Success(0),
        ParamError(-1),
        UnKnowError(-3),
        AuthError(-4);

        private Code(int value) {
            this.value = value;
        }

        private int value = 0;

        public int value() {
            return value;
        }
    }

    public enum Msg {
        InnerError("内部错误"),
        Success("执行成功"),
        ParamError("参数错误"),
        UnKnowError("内部错误"),
        PermissionError("token验证错误");

        private Msg(String msg) {
            this.msg = msg;
        }

        private String msg = "";

        public String value() {
            return msg;
        }
    }

}

但是按理说应该返回三个属性

    private int code;
    private String msg;
    private Object result;

但是只返回了两个

 

最后检查原因:

json在序列化时会调用属性的get方法来取值

少写了result属性的get方法

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值