2017-07-03 10 views
1

Webサービスからデータを消費するために、RetrofitでLoganSquareを使用しています。LoganSquareを使用してJSONからネストされたフィールドを非直列化する

特定のAPIの場合、Webサービスは比較的複雑なJSONレスポンスを返します。私が興味を持っているのは、2,3層の深いネストです。例えば、私はinner値でのみ興味があるので

{"outer": { "middle": { "inner": ... }}} 

は、私のようなデータオブジェクトを作成:

@JsonObject 
class MyData implements Serializable { 
    @JsonField(name = "outer.middle.inner") 
    public String inner; 
} 

そして私は、このデータタイプにWebサービスの戻り値をマッピングしました。

しかし、このドットシンタックス(outer.middle.inner)は、メソッドが正常に呼び出されたときにフィールドがマップされないため、私が望んだことを実行することを望んでいたようです。

LoganSquare JSONオブジェクトのフィールドをネストされた値にマップする方法はありますか?

答えて

0

私はあなたがそう内部クラスとして各JsonObjectを宣言する必要が思う:

@JsonObject 
public class MyData implements Serializable { 
    @JsonObject 
    public static class Outer { 
     @JsonObject 
     public static class Middle { 
      @JsonField 
      public String inner; 
     } 
    } 
}  
関連する問題