前端提交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();
}