@JsonbTypeDeserializer и @JsonbTypeSerializer не работают в полях - PullRequest
0 голосов
/ 29 апреля 2020

Я занят обменом Джексона на Jsob-B , и у меня возникла проблема при использовании @ JsonbTypeDeserializer и @ JsonbTypeSerializer как сказано ниже.

У меня есть такая сущность:

 public class User implements Serializable {

  private static final long serialVersionUID = 1L;

  private String login;

  @JsonbTypeDeserializer(Decrypting.class)
  @JsonbTypeSerializer(Encrypting.class)
  private String password;

  // getters and setter
}

И один такой тест:

  @Test
  public void whenDeserializingUsingJsonbTypeDeserializer() throws IOException {

    String json = "{\"login\":\"admin\", \"password\":\"yfv_ntl3_Nbrv0139tDwRQ\"}";

    Jsonb jsonb = JsonbBuilder.create();

    User user = jsonb.fromJson(json, User.class);

    Assert.assertEquals(user.getPassword(), "test-string");
  }

При запуске теста Класс расшифровки пытается десериализовать поле login , но, как вы можете видеть, только поле password имеет аннотации.

Есть ли способ исправить это?

1 Ответ

0 голосов
/ 29 апреля 2020

После обновления для новых версий у меня возникла проблема с JsonbConfigProperties.FAIL_ON_UNKNOWN_PROPERTIES , которую я переключил на YassonConfig.FAIL_ON_UNKNOWN_PROPERTIES , и теперь все работает нормально.

* 1006
...