你如何处理像gson中的对象一样编写的数组?

时间:2014-07-01 12:32:45

标签: java android json gson

我正在编写一个API客户端,以这种方式为我提供JSON数据:

"Thing": {
        "0": {
        ...
        },
        "1": {
        ...
        },
        "2": {
        ...
        }
}

因为我试图把它放在List中,所以我收到了错误:

Expected BEGIN_ARRAY but was BEGIN_OBJECT 

我不想在我的Java对象中添加HashMap,我想找到一种让gson正确转换它的方法。有没有办法做到这一点?

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以将对象放在HashMap中,然后将其转换为List:

HashMap<Integer, String> yourMapFromJSON = new ObjectMapper().readValue(JSON_SOURCE, HashMap.class);
List<String> list = new ArrayList<String>(yourMapFromJSON.values());

答案 1 :(得分:0)

如果您的模型包含数组而不是Map,则您有两个选项。

  • 将JSON解析为Map,然后从中检索值。
  • 为此案例创建特定的解析器。