【问题标题】:Android Retrofit Json Parsing(part of json dynamic)Android Retrofit Json Parsing(部分json动态)
【发布时间】:2017-06-19 02:34:58
【问题描述】:

我们正在使用 Retrofit 1.9

最初服务器返回一个像这样的 json-

{
"known_key1":"value1",
"known_key2":"value2"
}

我们已经创建了模型 -

public class ResponseModel {
    @SerializedName("known_key1")
    private String knownKey1;

    @SerializedName("known_key2")
    private String knownKey2;
} 

一切正常。

但是现在服务器在响应中返回了更多的键,但是键是动态的 -

{
"known_key1":"value1",
"known_key2":"value2",
"dynamic_key1":"value1",
"dynamic_key2":"value2"
}

现在我们的模型应该是什么?

【问题讨论】:

  • 在这种情况下,不要使用模型。而是使用 JsonObject 并从 JsonObject 解析键。
  • 你的意思是我们需要手动解析?
  • 是的,或者您可以按照@Mike 的建议使用 Map

标签: java android json retrofit


【解决方案1】:

对于这种情况,您可以使用地图

Map<String, Object> map

【讨论】:

  • 如果我们在模型中包含这样的内容,Gson 将如何反序列化它,我的意思是 Gson 将分配什么键。我们没有得到任何作为地图的键。
  • 不,你不再需要模型了,直接去地图。因此,在解析响应时,它就像键值对一样简单。
  • 能否请您详细说明一下。
  • 不使用 ResponseModel 类,只使用 Map
  • 谢谢迈克。它可以工作,但是如果我们采用这种方法,我所有的 json 键和值都将在 Map 中。没关系。但是我们的 json 响应有大约 45 个键,其中一些映射到自定义对象。基本上我们希望有具有相应数据的模型。我们能做到吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-25
  • 1970-01-01
  • 2016-09-18
  • 2016-02-14
  • 1970-01-01
  • 1970-01-01
  • 2016-01-11
相关资源
最近更新 更多