使用LoganSquare从JSON反序列化嵌套字段

时间:2017-07-03 22:47:29

标签: java android json retrofit logan-square

我正在使用带有Retrofit的LoganSquare来使用来自Web服务的数据。

对于一个特定的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对象中的字段映射到嵌套值?

1 个答案:

答案 0 :(得分:0)

我认为你必须将每个JsonObject声明为内部类,所以:

@JsonObject
public class MyData implements Serializable {
    @JsonObject
    public static class Outer {
        @JsonObject
        public static class Middle {
            @JsonField
            public String inner;
        }
    }
}