使用 LoganSquare 从 JSON 反序列化嵌套字段
Posted
技术标签:
【中文标题】使用 LoganSquare 从 JSON 反序列化嵌套字段【英文标题】:Deserialize nested field from JSON using LoganSquare 【发布时间】:2017-12-07 06:16:03 【问题描述】:我正在使用带有 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】:我认为您必须将每个 JsonObject 声明为内部类:
@JsonObject
public class MyData implements Serializable
@JsonObject
public static class Outer
@JsonObject
public static class Middle
@JsonField
public String inner;
【讨论】:
以上是关于使用 LoganSquare 从 JSON 反序列化嵌套字段的主要内容,如果未能解决你的问题,请参考以下文章