0

2 つのパラメーターを取り、2 番目のパラメーターを null にすることを許可する Java クラス コンストラクターを検討します。

public class Category {
    String name;
    @JsonIgnore Category parent;
    Category(String name,Category parent){this.name = name;this.parent=parent;}
}

@JsonIgnore アノテーション付きの親のシリアライズは必要ないのでスキップしました。結果のジェイソンで親プロパティが見つからないため、ジャクソンはそれを逆シリアル化できません。

name パラメーターのみを取るコンストラクターを定義する以外に、別の解決策はありますか?

4

1 に答える 1

1

欠落している名前付きコンストラクター パラメーターがあっても問題ありません。値の代わりに null を取得するだけです。したがって、次のようにすることができます。

@JsonCreator
public Category(@JsonProperty("name") String name, @JsonProperty("whatever") Category parent) { ... }

見つかったものはすべて渡されます。例外はスローされません。Jackson では、プロパティが存在する必要はありません。認識できないものについて不平を言うだけです(そうしないように構成されていない限り)。

于 2012-06-08T16:04:13.063 に答える