簡體   English   中英

@JsonbTypeDeserializer 和 @JsonbTypeSerializer 在字段中不起作用

[英]@JsonbTypeDeserializer and @JsonbTypeSerializer don't work in the fields

我正在進行為Jsob-B交換Jackson的活動,我在使用@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");
  }

運行測試時,Decryption class 正在嘗試反序列化登錄字段,但是如您所見,只有密碼字段有注釋。

有什么辦法解決嗎?

更新新版本后,我遇到了JsonbConfigProperties.FAIL_ON_UNKNOWN_PROPERTIES的問題,我切換為YassonConfig.FAIL_ON_UNKNOWN_PROPERTIES現在一切正常。

<dependency>
        <groupId>jakarta.json.bind</groupId>
        <artifactId>jakarta.json.bind-api</artifactId>
        <version>1.0.2</version>
</dependency>
<dependency>
        <groupId>org.eclipse</groupId>
        <artifactId>yasson</artifactId>
        <version>1.0.7</version>
</dependency>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM