【问题标题】:Using GSON to JSON > POJO [duplicate]使用 GSON 到 JSON > POJO [重复]
【发布时间】:2012-06-15 07:11:11
【问题描述】:

可能重复:
Parsing JSON to Java POJO's using GSON

我正在尝试使用 GSON 将此 JSON 映射到 POJO:

{
"get_lists": [
    {
        "Solution": [
            {
                "A05": "Herhalingsbezoek vereist"
            },
            {
                "A03": "Melding met oh verholpen"
            }
        ]
    },
    {
        "Problem": [
            {
                "R07B": "Aandrijving"
            },
            {
                "R07C": "Coating"
            }
        ]
    }
]
}

但是,解决方案和问题中的键和值都可能有所不同,我以前没有处理过这个问题。

【问题讨论】:

    标签: java json gson


    【解决方案1】:

    如果您的键变化不大,您可以创建一个包含所有所需字段的类?

    如果没有,您有这些解决方案:

    • 使用custom Deserializer

    • 解码为原始集合:这里是an example very similar to your problem

    • 使用HashMap<String, String>[] 反序列化您的解决方案:

      public class ListItem {
          public HashMap<String, String>[] Solution;
          public HashMap<String, String>[] Problem;
      }
      
      public class Message {
          public ListItem[] get_lists;
      }
      

    这有点重,但它避免了使用自定义反序列化器。

    【讨论】:

    • 它们的不同之处在于可以添加或更改键和值。
    • 我正在尝试您的 HashMap 解决方案,我认为我在我的 get_lists 中正确地将它们作为列表数组获取,但我无法将它们映射到 ListItem 中的 HashMaps。
    【解决方案2】:

    根据我给定的结构表示下面的 POJO

    class OuterObject
    {
    private List<MyObject> getLists;
     }
    
    private class MyObject
    {
    private List<MyKeyValuePair> myList;
    }
    
    private class MyKeyValuePair
    {
    private String key;
    private String value;
    }
    

    希望对您有帮助

    【讨论】:

    • 谢谢,我明白 GSON 是如何将它映射到 POJO 这样的,但我实际上不知道密钥。键和值都可以随时更改。
    猜你喜欢
    • 2017-08-25
    • 1970-01-01
    • 1970-01-01
    • 2020-07-30
    • 1970-01-01
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多