Джексон преобразовывает значение в список, но возвращает ноль - PullRequest
0 голосов
/ 17 декабря 2018

Строка json выглядит следующим образом:

[
   {
     "id":1545043316459,
     "user_id":127118102570729472,
     "username":"abcd",
     "phone":"12413453563",
     "password":"b6b33aad5c337315d4ac5a34d82db990cfaf22e5eefe27220b6827d5e66ad8b4",
     "license":"12351331",
     "plate":"abcdef",
     "avatar":"",
     "approval":0,
     "balance":0.0
   }
]

Когда я использую ObjectMapper.convertValue() для преобразования этого json в List<User>, метод возвращает ноль.Однако, когда я изменяю поле «утверждение» на 1, преобразование завершается успешно.
Th класс * Конструктор User выглядит следующим образом:

@JsonCreator
public User(@JsonProperty("user_id") long userId, @JsonProperty("username") String username, @JsonProperty("password") String password, @JsonProperty("avatar") String avatar,
                @JsonProperty("phone") String phone, @JsonProperty("license") String license, @JsonProperty("plate") String plate, @JsonProperty("approval") int approval,
                @JsonProperty("balance") BigDecimal balance) {
   this.userId = userId;
   this.username = username;
   this.password = password;
   this.avatar = avatar;
   this.phone = phone;
   this.license = license;
   this.plate = plate;
   this.balance = balance;
   this.approval = approval;
}

Я применил @JsonIgnoreProperties(ignoreUnknown = true) к классу.

1 Ответ

0 голосов
/ 17 декабря 2018

Джексон игнорирует типы примитивов со значением по умолчанию.

Чтобы исправить это, вы можете:

  1. Поместить аннотацию в поле утверждение

    @JsonInclude(Include.NON_DEFAULT)
    
  2. Измените тип с int на Integer

Решение за вами

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...