java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > 统一返回JsonResult踩坑

统一返回JsonResult踩坑的记录

作者:FLGB

这篇文章主要介绍了统一返回JsonResult踩坑的记录,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

统一返回JsonResult踩坑

定义了一个统一返回类

但是没有给@Data 导致没有get/set方法,请求一直报错

public class JsonResult<T> {

    private int code;
    private String message;
    private T data;

    public JsonResult() {}

    public JsonResult(int code, String message, T data) {
        this.code = code;
        this.message = message;
        this.data = data;
    }

    public int getCode() {
        return code;
    }

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

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }

    public static <T> JsonResult<T> success(T data) {
        return new JsonResult<>(200, "Success", data);
    }
}

在使用时,JsonResult没有get/set方法时

Spring MVC 在序列化时无法将对象正确转换为 JSON,因此会被视为 视图名称,导致循环视图渲染的问题。

Completed initialization in 2 ms
GET "/api/getUser", parameters={}
Mapped to kayou.eim.controller.BasicController#users()
Using 'application/octet-stream', given [*/*] and supported [*/*]
Using @ExceptionHandler kayou.eim.controller.global.GlobalExceptionHandler#handleException(Except
Internal server error

org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation

Resolved [org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation]
Completed 406 NOT_ACCEPTABLE
"ERROR" dispatch for GET "/api/error", parameters={}
Mapped to kayou.eim.controller.global.CustomErrorController#error(HttpServletRequest)
Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/json, appli
Writing [{timestamp=Wed May 07 18:09:17 CST 2025, status=406, error=Not Acceptable, path=/api/getUser}]
Exiting from "ERROR" dispatch, status 406

响应

{
    "timestamp": 1746612557176,
    "status": 406,
    "error": "Not Acceptable",
    "path": "/api/getUser"
}

报错不够清晰准确,导致排查了一圈。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文