改造 + GSON 解串器

Posted

技术标签:

【中文标题】改造 + GSON 解串器【英文标题】:Retrofit + GSON deserializer 【发布时间】:2015-06-11 07:10:30 【问题描述】:

我有一个像这样的对象:

"choice": 
    "000": 
             "id": "001",
             "label": "test",
             "status": "0"
     ,
    "001": 
             "id": "001",
             "label": "test",
             "status": "0"
     ,
    "002": 
             "id": "001",
             "label": "test",
             "status": "0"
     ,
    "003": 
             "id": "001",
             "label": "test",
             "status": "0"
     ,
    "004": 
             "id": "001",
             "label": "test",
             "status": "0"
     
    ,

如何使用 Gson+Retrofit 解析该对象?或者生成一个POJO?有一种简单的方法吗?

非常感谢!

【问题讨论】:

【参考方案1】:

您在选择 json 对象中所拥有的主要思想是 Map:

public class RootObject
    Map <String,ChoiceEntry> choice;


public class ChoiceEntry
    String id;
    String label;
    int status;

【讨论】:

您还可以编辑您的问题并提供“map”“序列化”gson 关键字,以使您的问题和我的答案更容易被其他有同样问题的人所接受。 [["test","test"],["test","test"],["test","test"],["test","test"],[ "test","test"],["test","test"],["test","test"]] 我有一个带有自定义对象列表的 POJO(带有 2 个字符串)。但它不起作用。 @Chronos 因为 [] 表示它是数组(列表)。所以现在你有了数组数组。你应该有 [...,...,...,...,...‌​,...,...]。在这种情况下,它是对象列表。在 "key1":"string1", "key2":"string2" 内。它将是对象列表。【参考方案2】:

您可以通过将该 JSON 代码粘贴到此链接中来创建 POJO:http://pojo.sodhanalibrary.com/。

您发布的 sn-p 格式不正确。我相信您将拥有一个多类 POJO,这对于某些用途(例如列表视图)来说很难使用。

让我知道进展如何。 Retrofit 真的很好用,但是弄起来非常烦人!

【讨论】:

是的,谢谢。我推荐你jsonschema2pojo.org,我觉得比你发的那个更好:)【参考方案3】:

有一个addon 用于 intellij/android studio,用于轻松生成 POJO。

免责声明:我与该项目无关。

【讨论】:

以上是关于改造 + GSON 解串器的主要内容,如果未能解决你的问题,请参考以下文章

串行解串器 SerDes

Jackson 解串器默认是如何工作的

杰克逊解串器优先级?

受 Deadbolt“限制”注释影响的 Jackson 解串器

将值注入Jackson转换器/解串器

DC平衡双向控制解串器 转接IC GM8914:FPD-LINK III转LVTTL芯片