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方法