Java 在Spring控制器中使用JSON修补程序时出现HttpMessageNodeReadableException

Java 在Spring控制器中使用JSON修补程序时出现HttpMessageNodeReadableException,java,json,spring,Java,Json,Spring,我想使用baeldung后面的Patch方法,但当控制器接收到@RequestBody中的JsonPatch对象时,我出现了错误。 如果我使用JSONmergeMatch,那么控制器反序列化时不会出现问题 谢谢 错误是: [org.springframework.http.converter.httpMessageNodeTableException:JSON解析错误:无法反序列化'java.util.ArrayList'字段外\u名称标记的实例;嵌套异常为com.fasterxml.jacks

我想使用baeldung后面的Patch方法,但当控制器接收到@RequestBody中的JsonPatch对象时,我出现了错误。 如果我使用JSONmergeMatch,那么控制器反序列化时不会出现问题

谢谢

错误是:
[org.springframework.http.converter.httpMessageNodeTableException:JSON解析错误:无法反序列化'java.util.ArrayList'字段外\u名称标记的实例;嵌套异常为com.fasterxml.jackson.databind.exc.MismatchedInputException:无法反序列化'java.util.ArrayList'字段外\u名称标记的实例
在[源:(PushbackInputStream);第2行,第5列]]

我的控制器:

   public ResponseEntity<carsDTO> modifyCars(@RequestBody JsonPatch jsonMergePatch,HttpServletRequest headers)
throws JsonPatchException, JsonProcessingException {...
错误:

{"timestamp":"2020-04-13T00:23:23.143+0000","status":400,"error":"Bad Request","message":"JSON parse error: 
Cannot deserialize instance of `java.util.ArrayList<com.github.fge.jsonpatch.JsonPatchOperation>` 
out of FIELD_NAME token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: 
Cannot deserialize instance of `java.util.ArrayList<com.github.fge.jsonpatch.JsonPatchOperation>` 
out of FIELD_NAME token\n at [Source: (PushbackInputStream); line: 2, column: 5]","path":"/api/v1.0/cars"}

{“timestamp”:“2020-04-13T00:23:23.143+0000”,“status”:400,“error”:“Bad Request”,“message”:“JSON解析错误:
无法反序列化'java.util.ArrayList'的实例
字段外\u名称标记;嵌套异常为com.fasterxml.jackson.databind.exc.MismatchedInputException:
无法反序列化'java.util.ArrayList'的实例
[Source:(PushbackInputStream);第2行,第5列],“path”:“/api/v1.0/cars”处的字段外\u名称标记\n

我不知道您是否已经解决了这个问题,但对于任何面临这个问题的人来说,这是一个语法问题。JsonPatch必须包含在[]中。请记住,它实际上是一个数组,因此您可以同时更改多个值。 在您的情况下,它应该是:

    [
      {
        "op": "replace",
        "path": "/brand",
        "value": "chevy"
      }
    ]
    [
      {
        "op": "replace",
        "path": "/brand",
        "value": "chevy"
      }
    ]