用Jackson序列化JSON PATCH请求

时间:2018-11-06 23:25:55

标签: spring-boot jackson json-patch

我将Java Spring Boot用作通向具有JSON Patch的PATCH端点的API的网关。如果类型不同,是否可以使用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的新手,因此乐于接受建议和替代解决方案。

0 个答案:

没有答案