JAVA 获取body 传递的json
时间: 2023-07-10 18:04:12 浏览: 90
在 Java 中,可以使用 Servlet API 或 Spring MVC 中的相关类来获取 HTTP 请求中的 Body 传递的 JSON 数据。
使用 Servlet API:
```java
import javax.servlet.http.HttpServletRequest;
import java.io.BufferedReader;
public class MyServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
StringBuilder sb = new StringBuilder();
BufferedReader reader = request.getReader();
try {
String line;
while ((line = reader.readLine()) != null) {
sb.append(line).append('\n');
}
} finally {
reader.close();
}
String json = sb.toString();
// 处理获取到的 json 数据
}
}
```
使用 Spring MVC:
```java
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyController {
@PostMapping("/my-path")
public void handleJson(@RequestBody String json) {
// 处理获取到的 json 数据
}
}
```
其中,`HttpServletRequest#getReader()` 方法可以获取到一个 `BufferedReader` 对象,然后可以使用该对象的 `readLine()` 方法逐行读取 Body 中的数据。Spring MVC 中,可以使用 `@RequestBody` 注解将请求 Body 中的数据绑定到方法参数上。
阅读全文