改进:是否可以将用作Map的“文学对象”映射到POJO?

时间:2019-06-11 16:33:10

标签: android retrofit pojo

我发现将“非0到n”列表(例如可以在PHP中使用的“非0到n”数组)序列化为JSON格式的唯一方法是:

{
  "one": 1,
  "two": 2,
  "three": 3
}

...只是以一种简单的方式直奔主题。其实我的问题有点复杂。

我正在发送一些数据,我需要按ID对列表进行索引。每个值同时是另一个“文字对象”,但是它们都具有相同的结构。喜欢:

{
    "array_list_1": {
        "3": {"name": "John", "age": 24},
        "5": {"name": "Kale", "age": 23},
        "8": {"name": "Laura", "age": 22},
    },
    "array_list_2": {
        "13": {"name": "Mike", "age": 27},
        "21": {"name": "Nikolai", "age": 34},
        "34": {"name": "Oscar", "age": 23},
    },
    "manifold_array" = [55,89]
}

当我仅使用OkHttp在Android应用程序中以上述格式接收数据时,我就使用JsonObject库将每个列表转换为org.json.JSONObject。但是现在我要重构,而要使用Retrofit,并且我需要创建一个POJO以使用Retrofit在ApiClient中处理这种格式。

在这种情况下,以哪种方式将属性array_list_1表示为一个(例如,)在POJO中表示这些“非0到n数组”的正确方法是什么? )LinkedHashMap<Integer, PersonPojo>,并与翻新兼容吗?

1 个答案:

答案 0 :(得分:0)

  

它与Retrofit兼容吗?

Retrofit不负责映射传递给Retrofit的GsonConverterFactory.create()方法的POJO / List / Map builder。并且完全可以 拨打地图。

上面的JSON structure可以由以下数据结构表示:-

LinkedHashMap<String, LinkedHashMap<String, PersonPojo>> map

PersonPojo代表:-

{"name": "Mike", "age": 27}