我正在使用带有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对象中的字段映射到嵌套值?
答案 0 :(得分:0)
我认为你必须将每个JsonObject声明为内部类,所以:
@JsonObject
public class MyData implements Serializable {
@JsonObject
public static class Outer {
@JsonObject
public static class Middle {
@JsonField
public String inner;
}
}
}