2016-08-30 6 views
0

にネストされたオブジェクトキーのマッピング私のようなJSONを持っている - のようJSONのデシリアライズ - 直接クラス

{ 
"type" : "employee", 
"details" : { 
    "name" : "ABC", 
    "age" : 12, 
    "sex" : "male" 
    } 
} 

をし、Javaクラス人のクラスへのdetailsオブジェクトの属性はdetails.nameからPerson.nameのようになります。 これはカスタムデシリアライザで実現できますが、私はそれを避けることを望んでいました。 GSONまたはJacksonが提供するいくつかの注釈かもしれません。

+0

カスタムデシリアライザなしでこれを行うことはできません。これは@JsonWrappedアノテーションで行うことができます。しかし、これは議論されているが、まだジャクソンで実装されていないものであり、GSONについての考えはない。 – Franjavi

答えて

-1

あなたがマッピングに@JsonPropertiesを使用することができます

+0

あなたはいくつかの例を共有できますか? –

0

あり、これを解決するには、いくつかの方法がありますが、私は何だろうと、以下のクラスを作成です:

public class PersonWrapper { 

    private String type; 

    @JsonProperty("details") 
    private Person person; 

} 

EDIT:

あなたの場合をラッパークラスを追加したくない場合は、Personクラスに@JsonRootName(value = "details")を追加してみてください。

+0

これは私が避けようとしていることです。私はこれがうまくいくと思います。しかし、与えられた階級構造内で働くことをここに意図します –

+0

私はちょうど私の答えを編集しました。私は前にその注釈を使用したことはありませんが、ドキュメントを読んだ後は、あなたが望むことをするように思えます。構成の変更が必要な場合もあります。 http://stackoverflow.com/questions/11704255/jackson-json-deserialization-with-root-elementを参照してください。 – Adam

関連する問題