RequestUtils 作者:马育民 • 2022-09-24 10:05 • 阅读:10067 # 说明 需要依赖 jackson、hutool 库 - 可以将 `request.getParameter()` 中的数据取出,封装到 javabean中 - 可以将前端发送的 `json` 格式数据,读取出来,封装到 javabean 中、map中 ### 代码 ``` package com.zrgj.epidemic.util; import cn.hutool.core.bean.BeanUtil; import com.fasterxml.jackson.databind.ObjectMapper; import javax.servlet.http.HttpServletRequest; import java.io.BufferedReader; import java.util.HashMap; import java.util.Map; import java.util.Set; public class RequestUtils { public static void parseParam(HttpServletRequest req, Object obj){ Map map = req.getParameterMap(); Map paraMap = new HashMap(); parseParam(map,paraMap); BeanUtil.fillBeanWithMap(paraMap,obj , false); } // 会有bug,只处理一个值,类似爱好这种,暂不处理 private static void parseParam(Map srcMap , Map destMap){ // 遍历 map 中的所有 key value Set> entries = srcMap.entrySet(); for(Map.Entry entry : entries){ String key = entry.getKey(); String[] valueArr = entry.getValue(); String value = null; // 只处理一个值,类似爱好这种,暂不处理 if(valueArr!=null && valueArr.length == 1){ value = valueArr[0]; } destMap.put(key,value); } } public static T parseJson(HttpServletRequest req, Class clazz) throws Exception{ String jsonStr = getJsonString(req); // 将json格式的字符串,转换成java对象 // 注意:json字符串中的属性名,要与类中的属性名一致,才能将值传入 ObjectMapper mapper = new ObjectMapper(); T res = mapper.readValue(jsonStr, clazz); return res; } public static Map parseJson(HttpServletRequest req) throws Exception{ String jsonStr = getJsonString(req); ObjectMapper mapper = new ObjectMapper(); Map res = mapper.readValue(jsonStr, Map.class); return res; } public static String getJsonString(HttpServletRequest req) throws Exception{ StringBuilder sb = new StringBuilder(); BufferedReader reader = req.getReader(); char[]buff = new char[1024]; int len; while((len = reader.read(buff)) != -1) { sb.append(buff,0, len); } String jsonStr = sb.toString(); return jsonStr; } } ``` 原文出处:http://malaoshi.top/show_1IX46am11935.html