Jakarta JSON Binding 3.1 の主な変更点(予定)

Jakarta JSON Binding 3.1 には、特に大きな変更はありません。

以下の2つを見ておけば十分でしょう。


Java Record support

Java Record のサポートが入りました。

public record Dog(String name, int age, boolean bites) { }

Dog dog = new Dog("Falco", 4, false);
Jsonb jsonb = JsonbBuilder.create();
String result = jsonb.toJson(dog);

dog = jsonb.fromJson("{\"name\":\"Falco\",\"age\":4,\"bites\":false}", Dog.class);

プロパティ名を変更する場合は以下のように @JsonbProperty で指定できます。

public record Person(@JsonbProperty("person-name") String name, String profession) { }
public record Person(String name, String profession) {

    @JsonbProperty("person-name")
    public String name() {
        return name;
    }

}


java.util.UUID のデフォルトマッピング追加

旧来は、明示的に仕様に含まれていなかった java.util.UUID がデフォルトマッピング対象に追加されました。

Yasson の実装では旧来(Add default deserializer for UUID)から標準でサポートされていたため、大抵は気にする必要はありません。