入参json格式,出参Json格式
引文,springboot:https://blog.csdn.net/HXNLYW/article/details/80776491
封装自己的json注解
public class FastJsonArgumentResolver implements HandlerMethodArgumentResolver { public FastJsonArgumentResolver() { } public boolean supportsParameter(MethodParameter methodParameter) { return methodParameter.getParameterAnnotation(Json.class) != null; } public Object resolveArgument(MethodParameter methodParameter, ModelAndViewContainer modelAndViewContainer, NativeWebRequest nativeWebRequest, WebDataBinderFactory webDataBinderFactory) throws Exception { HttpServletRequest request = (HttpServletRequest)nativeWebRequest.getNativeRequest(HttpServletRequest.class); String contentType = request.getContentType(); if (!StringUtils.isEmpty(contentType) && request.getContentType().contains("application/json")) { BufferedReader reader = request.getReader(); StringBuilder sb = new StringBuilder(); char[] buf = new char[1024]; int rd; while((rd = reader.read(buf)) != -1) { sb.append(buf, 0, rd); } return JSONObjectWrapper.class.isAssignableFrom(methodParameter.getParameterType()) ? new JSONObjectWrapper(JSON.parseObject(sb.toString())) : JSON.parseObject(sb.toString(), methodParameter.getParameterType()); } else { return null; } }
public class JSONObjectWrapper { private JSONObject jsonObject; public JSONObjectWrapper(JSONObject jsonObject) { this.jsonObject = jsonObject; } public JSONObject getJSONObject() { return this.jsonObject; } }