Java自定义方法转换前端提交的json字符串为JsonObject对象
Posted 小策一喋技术博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java自定义方法转换前端提交的json字符串为JsonObject对象相关的知识,希望对你有一定的参考价值。
前端提交json字符串格式数据,Java后端通过自定义方法接收json字符串数据并转换为JsonObject对象,代码如下放到RequestData.Java类中:
public static JSONObject getRequestJsonObj(HttpServletRequest request) { InputStreamReader reader = null; InputStream in = null; String requsetSb = ""; StringBuffer sb = new StringBuffer(); try { in = request.getInputStream(); reader = new InputStreamReader(in, "UTF-8"); char[] buffer = new char[1024]; int len; while ((len = reader.read(buffer)) > 0) { sb.append(buffer, 0, len); } //System.out.println("请求信息:" + sb.toString()); requsetSb = sb.toString(); } catch (Exception e) { e.printStackTrace(); } finally { try { if (reader != null) { reader.close(); } } catch (IOException e) { e.printStackTrace(); } try { if (in != null) { in.close(); } } catch (IOException e) { e.printStackTrace(); } } JSONObject jsobj = JSONObject.fromObject(requsetSb.toString()); return jsobj; } public static Object getRequestJsonObj(HttpServletRequest request, Class clazz) { JSONObject jsonObject = getRequestJsonObj(request); Object obj = JSONObject.toBean(jsonObject, clazz); return obj; }
控制器中调用:
@RequestMapping("/test") public void test(HttpServletRequest request) { JSONObject obj = RequestData.getRequestJsonObj(request); String userNameId = obj.getString("userNameId"); }
如果有实体Bean对象,可以通过以下方法接收:
@RequestMapping("/test") public void test(HttpServletRequest request) { User user = (User) RequestData.getRequestJsonObj(request, User.class); String userNameId = user.getUserNameId(); }
以上是关于Java自定义方法转换前端提交的json字符串为JsonObject对象的主要内容,如果未能解决你的问题,请参考以下文章
当 minifyEnabled 为 true 时,如何将 JSON 字符串转换为自定义对象?