2

我正在使用带有 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 对象中的字段映射到嵌套值?

4

1 回答 1

0

我认为您必须将每个 JsonObject 声明为内部类:

@JsonObject
public class MyData implements Serializable {
    @JsonObject
    public static class Outer {
        @JsonObject
        public static class Middle {
            @JsonField
            public String inner;
        }
    }
}     
于 2017-07-04T00:38:00.847 回答