Jacksonでは、コンストラクタに をアノテーションする場合@JsonCreator
、その引数にも をアノテーションする必要があります@JsonProperty
。したがって、このコンストラクタは
public Point(double x, double y) {
this.x = x;
this.y = y;
}
こうなります:
@JsonCreator
public Point(@JsonProperty("x") double x, @JsonProperty("y") double y) {
this.x = x;
this.y = y;
}
なぜそれが必要なのか分かりません。説明していただけますか?
ベストアンサー1
Jackson は、JSON オブジェクトからコンストラクターにフィールドを渡す順序を認識する必要があります。Java ではリフレクションを使用してパラメーター名にアクセスすることはできません。そのため、この情報をアノテーションで繰り返す必要があります。