2016-03-18 11 views
1

自分のプロジェクトにカスタムJSONデシリアライザを書きたいと思っています。デシリアライザのドキュメント全体を解析したくないだけで、カスタムデシリアライザを使用したい部分だけを解析したくありません。JSON構造内の特定のオブジェクトに対してカスタムJackson JsonDeserializer <T>クラスを使用する方法は?

これは私が解析したいJSONされています。現在http://pastebin.com/mkHy0Gj6

、私はカスタムデシリアライザを使用しようとすると、文書のすべてが渡されると、私は手動ですべてを解析する必要があり、私はちょうど持っていたいですイベント配列内のオブジェクトに対してこれを実行します。これどうやってするの?ここで

は私の現在の実装である:http://pastebin.com/dePz0QFJ

+1

カスタムデシリアライザを作成する理由は何ですか?それに直面して、データバインディングを使用して容易に非直列化できるようになります。 – beresfordt

+0

私はSteam APIから何かを解析しようとしています。実際にそれは私がデシリアライザを介して解析しようとしているものの構造です。 –

答えて

0

あなたのカスタムデシリアライザに注釈

@JsonIgnoreProperties(ignoreUnknown = true)

を追加することができ、それはあなたがデシリアライズすることを選択したフィールド以外のすべてを無視します。

+0

それは動作していないようだ、これは私がこれまで持っているものです... http://pastebin.com/dePz0QFJ私はこのエラーが発生します: "com.fasterxml.jackson.databind.JsonMappingException:ルート名 '名前'は単純型、クラスcom.fasterxml.jackson.databind.JsonNode]の型( 'JsonNode')は期待通りではありません。 –

+0

名前が応答オブジェクト内にネストされている場合、どのように名前を取得すると思いますか? – hofan41

+0

レスポンスオブジェクトのevents配列内に入り、events配列を反復して各名前を出力する必要があります。 – hofan41

関連する問題