APPLICATION_JSON与APPLICATION_JSON_VALUE的区别
时间: 2023-07-30 10:11:43 浏览: 361
`APPLICATION_JSON` 是一个 MediaType 类型的常量,表示 JSON 数据的 MIME 类型。而 `APPLICATION_JSON_VALUE` 是一个字符串常量,其值等同于 `APPLICATION_JSON` 的字符串形式 `"application/json"`。
在 Spring 框架中,`APPLICATION_JSON` 和 `APPLICATION_JSON_VALUE` 主要用于定义 HTTP 请求和响应中的 Content-Type 和 Accept 头部信息。例如,如果需要指定请求体的数据格式为 JSON,则可以使用如下代码:
```java
@PostMapping(value = "/api", consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<MyResponse> handleRequest(@RequestBody MyRequest request) {
// 处理请求
return ResponseEntity.ok(new MyResponse());
}
```
上面的代码中,`consumes` 参数指定了请求的 Content-Type 为 `application/json`,这样 Spring 就会自动将请求体中的 JSON 数据转换为 `MyRequest` 对象。类似地,如果需要指定响应的数据格式为 JSON,则可以使用如下代码:
```java
@GetMapping(value = "/api", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<MyResponse> handleRequest() {
// 处理请求
return ResponseEntity.ok(new MyResponse());
}
```
上面的代码中,`produces` 参数指定了响应的 Content-Type 为 `application/json`,这样 Spring 就会自动将 `MyResponse` 对象转换为 JSON 数据返回给客户端。
阅读全文