我正在使用 Java Spring Boot 作为 API 的网关,该 API 具有使用 JSON Patch 的 PATCH 端点。如果有不同的类型,是否可以使用 Jackson 序列化 JSON Patch 文档?例如,如果我希望我的 JSON Patch 文档具有 3 个值类型不同的操作,Jackson 是否可以以 3 种不同的方式序列化每个操作?
[
{
"op": "replace",
"path": "/name",
"value": "foo bar"
},
{
"op": "replace",
"path": "/tags",
"value": [
"done",
"complete"
]
},
{
"op": "replace",
"path": "/age",
"value": 25
},
]
我目前正在使用 @RequestBody 注释来反序列化我从前端应用程序收到的请求。
// Controller
@PatchMapping(
path = "/images/{imageId}",
consumes = MediaType.APPLICATION_JSON_VALUE,
produces = MediaType.APPLICATION_JSON_VALUE)
public Mono<ResponseEntity<String>> updateImage(
@RequestBody @NotBlank List<UpdateOp> request) {
return imageService.updateImage(request);
}
// Image Service
public Mono<ResponseEntity<String>> updateImage(List<UpdateOp> request) {
...
.body(BodyInserters.fromObject(objMapper.writeValueAsBytes(request)))
...
}
我是 Spring Boot 菜鸟,因此对建议和替代解决方案持开放态度。