日期:2023-06-10
1.获取前端传过来的JSON格式的数据
- 在SpringBoot中通过@RequestBody注解搭配实体类或者Map集合来接收Json数据。
- 通过Request获得流的方式来接收Json格式的数据,具体代码封装成一个工具类如下所示:
package com.hmdp.utils;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import javax.servlet.http.HttpServletRequest;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class RequestWithJsonUtil {
private HttpServletRequest request;
public RequestWithJsonUtil(HttpServletRequest request) {
this.request = request;
}
//获取一个字符串格式的
public String getString(String key) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream()));
StringBuilder stringBuilder = new StringBuilder();
String line= null;
while ((line=reader.readLine())!=null){
stringBuilder.append(line);
}
String response = stringBuilder.toString();
JSONObject jsonObject = JSONUtil.parseObj(response);
String result = jsonObject.getStr(key);
return result;
}
//获取任意格式的
public Object get(String key) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream()));
StringBuilder stringBuilder = new StringBuilder();
String line= null;
while ((line=reader.readLine())!=null){
stringBuilder.append(line);
}
String response = stringBuilder.toString();
JSONObject jsonObject = JSONUtil.parseObj(response);
Object result = jsonObject.get(key);
return result;
}
}
我们在使用的时候,只需要new出该工具对象并且传入request对象(HttpServltRequest),调用get或getString方法,写入想要获得的key即可。
RequestWithJsonUtil map = new RequestWithJsonUtil(request);
int type = (int) map.get("type");
return type;