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 字符串转换为自定义对象?

Django 表单 (下) - 序列化操作

如何将自定义属性转换为 Json 字符串

java后端怎么发送json文件给客户端?

post发送JSON数据(字符串、数组、字典、自定义对象)给服务器

自定义一个 Jackson 转换注解完成敏感数据的隐藏