前端提交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; }
控制器中調用:java
@RequestMapping("/test") public void test(HttpServletRequest request) { JSONObject obj = RequestData.getRequestJsonObj(request); String userNameId = obj.getString("userNameId"); }
若是有實體Bean對象,能夠經過如下方法接收:json
@RequestMapping("/test") public void test(HttpServletRequest request) { User user = (User) RequestData.getRequestJsonObj(request, User.class); String userNameId = user.getUserNameId(); }