当前位置: 首页 > 知识库问答 >
问题:

无法反序列化模型的实例。*START_ARRAY标记不足\n位于

窦宏旷
2023-03-14

我做训练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

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);
    }
}

通过邮递员,我用json发送新的数据,并得到邮递员的答复

[
  {
    "message": "Hello World1",
    "author": "ABC"
  }
]

“异常”:“org.springframework.http.converter.httpmessageNotreadableException”,“消息”:“无法读取文档:无法反序列化com.sttech.springrest.model.message的实例脱离START_ARRAY内标识\n位于[source:java.io.pushbackInputStream@6ccdce8a;行:1,列:1];嵌套异常是com.fasterxml.jackson.databind.JsonMappingException:无法反序列化com.sttech.springrest.model.message脱离START_ARRAY内标识\n位于[source:java.io.pushbackInputStream@6ccdce8a;行:1,列:1]”

怎么修?我想模特没有得到身份证明。

共有1个答案

公西俊德
2023-03-14

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

所以不是:

[
  {
    "message": "Hello World1",
    "author": "ABC"
  }
]

您只需发送:

{
  "message": "Hello World1",
  "author": "ABC"
}
 类似资料: