【问题标题】:com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `Todo` out of START_ARRAY tokencom.fasterxml.jackson.databind.exc.MismatchedInputException:无法从 START_ARRAY 令牌中反序列化“Todo”实例
【发布时间】:2021-07-21 08:30:55
【问题描述】:

我有这个我转换成 POJO 的 json

JSON 转换成 POJO 文件

[
    {
        "postId": 81,
        "id": 401,
        "name": "cum voluptate sint voluptas veritatis",
        "email": "Vella.Mayer@colten.net",
        "body": "sit delectus recusandae qui\net cupiditate sed ipsum culpa et fugiat ab\nillo dignissimos quo est repellat dolorum neque\nvoluptates sed sapiente ab aut rerum enim sint voluptatum"
    },
    {
        "postId": 81,
        "id": 403,
        "name": "cum voluptate sint voluptas veritatis",
        "email": "Vella.Mayer@colten.net",
        "body": "sit delectus recusandae qui\net cupiditate sed ipsum culpa et fugiat ab\nillo dignissimos quo est repellat dolorum neque\nvoluptates sed sapiente ab aut rerum enim sint voluptatum"
    }
]

这是我转换成的POJO类

public class TodoItem{
    private int id;
    private boolean completed;
    private String title;
    private int userId;

我尝试使用 todo 来验证它的类类型的响应,但总是得到这个错误。

Todo todo = response.getBody().as(Todo.class);
Assert.assertTrue(response.statusCode() == 200);

错误

com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `io.christdoes.pojo.todo.Todo` out of START_ARRAY token
 at [Source: (String)"[

【问题讨论】:

    标签: json-deserialization rest-assured pojo


    【解决方案1】:

    你做错了两件事:

    • 您要匹配的 POJO
    • 映射方式(数组无法映射到单个对象)

    应该是

    List<TodoItem> todoItems = response.as(new TypeRef<>() {});
    

    POJO(我使用 lombok 来生成 getter/setter)

    import lombok.Data;
    
    @Data
    public class TodoItem{
        private int postId;
        private int id;
        private String name;
        private String email;
        private String body;
    }
    

    【讨论】:

      猜你喜欢
      • 2020-09-07
      • 2021-01-12
      • 2017-10-10
      • 2021-11-24
      • 2020-09-23
      • 1970-01-01
      • 2016-07-30
      • 2015-03-10
      • 2019-10-25
      相关资源
      最近更新 更多