2017-07-03 80 views
1

我正在使用LogonSquare和Retrofit來使用來自Web服務的數據。使用LoganSquare反序列化JSON中的嵌套字段

對於一個特定的API,Web服務返回一個相對複雜的JSON響應,並且我感興趣的唯一信息嵌套了幾層。例如,

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

由於我只在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; 
     } 
    } 
}