将HttpServletRequest 请求参数转为json可以有两种方式:request.getParameterMap()和request.getQueryString()
1. request.getParameterMap()
Map<String, String[]> parameterMap = request.getParameterMap();
String jsonStr = JSONObject.toJSONString(parameterMap);
JSONObject obj = JSONObject.parseObject(jsonStr);
System.out.println(obj.toJSONString());
输出结果为:{"id":["1"]},值是一个数组。
2. request.getQueryString()
String[] parts = request.getQueryString().split("&");
JSONObject json = new JSONObject();
for (String part : parts) {
String[] keyVal = part.split("=");
json.put(keyVal[0], keyVal[1]);
}
System.out.println(json.toJSONString());
输出结果为:{"id":"1"},是将参数字符串进行解析得到的结果。
也可以才有第一种方式获取参数,然后修改value的格式
Map<String, String> map = new HashMap<>();
parameterMap.forEach((key, value) -> {
map.put(key, String.join(" ", value));
});
JSONObject json = new JSONObject();
json.putAll(map);
System.out.println(json.toJSONString());