0

ObjectNode を拡張して、JSON からいくつかの特定のフィールドを取得するためのいくつかのヘルパー メソッドを使用できるようにしたいと考えています。例えば

public class MyNode extends ObjectNode {
  public void Long getTimestamp() {
    return this.get(HEADER).get(TIMESTAMP).asLong();
  }
}

しかし、私が抱えている問題は、ObjectMapper().readTree("<...my JSON here...>") が明らかに MyNode にキャストできない JsonNode オブジェクトを返すことです。

また、別の JsonNode を取る ObjectNode のコンストラクターはありません。JSON の文字列表現を MyNode オブジェクトに変換する最良の方法は何ですか?

4

1 に答える 1

1

カスタムを作成するJsonNodeFactory(そしてそれを に登録するObjectMapper) 必要があり、これによりカスタム実装を提供できるようになります。それらはサブクラスである必要があります。ただし、独自のインスタンスを作成するだけで、デシリアライザーがインスタンスを作成できます。したがって、コピー コンストラクターや変換を使用する必要はありません。代わりに、新しい空のインスタンスを作成するために factory が呼び出されます。

于 2012-10-27T00:00:53.600 に答える