无法反序列化模型实例。*来自START_ARRAY令牌\ n,位于

Ser*_*i R 3 rest json spring-boot

我进行REST服务迁移,现在尝试添加新项。

型号留言:

@Entity
@Table(name="message")
public class Message{

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "ID")
    private long id;
    @Column(name = "MESSAGE")
    private String message;
    @Column(name = "AUTHOR")
    private String author;
    @Column(name = "CREATED")
    @Temporal(TemporalType.DATE)
    private Date created;

    public Message() {}

    public Message(Long id, String message, String author) {
        this.id = id;
        this.message = message;
        this.author = author;
        this.created = new Date();
    }
+ getters / setters
Run Code Online (Sandbox Code Playgroud)

MessageController:

@RestController
public class MessageController {

    @Autowired
    private MessageRepository messageRepository;

    @RequestMapping(
        value = "/api/messages",
        method = RequestMethod.POST,
        consumes = MediaType.APPLICATION_JSON_VALUE,
        produces = MediaType.APPLICATION_JSON_VALUE)
    public ResponseEntity<?> addMessage(@RequestBody Message newMessage) {
        return new ResponseEntity<>(messageRepository.save(newMessage), HttpStatus.CREATED);
    }
}
Run Code Online (Sandbox Code Playgroud)

错误:

2016-11-06 10:52:53.857警告1100-[nio-8080-exec-1] .wsmsDefaultHandlerExceptionResolver:无法读取HTTP消息:org.springframework.http.converter.HttpMessageNotReadableException:无法读取文档:无法在[来源:java.io.PushbackInputStream@6ccdce8a;中,从START_ARRAY令牌中反序列化com.sttech.springrest.model.Message实例。行:1,列:1];嵌套的异常是com.fasterxml.jackson.databind.JsonMappingException:无法在[Source:java.io.PushbackInputStream@6ccdce8a; 行:1,列:1]

通过邮递员,我在json中发送新数据并获得邮递员答复

[
  {
    "message": "Hello World1",
    "author": "ABC"
  }
]
Run Code Online (Sandbox Code Playgroud)

“ exception”:“ org.springframework.http.converter.HttpMessageNotReadableException”,“ message”:“无法读取文档:无法反序列化com.sttech.springrest.model.Message实例的START_ARRAY令牌\ n在[来源: java.io.PushbackInputStream@6ccdce8a;行:1,列:1];嵌套异常是com.fasterxml.jackson.databind.JsonMappingException:无法从START_ARRAY令牌中反序列化com.sttech.springrest.model.Message实例\ n在[来源:java.io.PushbackInputStream@6ccdce8a;第1行,第1行:]

如何解决?我认为该模型没有ID。

Cod*_*odo 5

您的服务需要一条消息。但是,您发送了一组消息(尽管它只包含一条消息)。

所以代替:

[
  {
    "message": "Hello World1",
    "author": "ABC"
  }
]
Run Code Online (Sandbox Code Playgroud)

您应该发送:

{
  "message": "Hello World1",
  "author": "ABC"
}
Run Code Online (Sandbox Code Playgroud)