Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何处理像gson中的对象一样写入的数组?_Java_Android_Json_Gson - Fatal编程技术网

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

Java 如何处理像gson中的对象一样写入的数组?,java,android,json,gson,Java,Android,Json,Gson,我正在为一个API编写一个客户端,该API通过以下方式为我提供JSON数据: "Thing": { "0": { ... }, "1": { ... }, "2": { ... } } 因为我试图将其放入列表中,所以得到错误: Expected BEGIN_ARRAY but was BEGIN_OBJECT 我不想在Java对象中添加HashMa

我正在为一个API编写一个客户端,该API通过以下方式为我提供JSON数据:

"Thing": {
        "0": {
        ...
        },
        "1": {
        ...
        },
        "2": {
        ...
        }
}
因为我试图将其放入列表中,所以得到错误:

Expected BEGIN_ARRAY but was BEGIN_OBJECT 
我不想在Java对象中添加HashMap,我想找到一种方法让gson正确地转换它。有办法做到这一点吗


谢谢

您可以将对象放入HashMap,然后将其转换为列表:

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

如果你的模型包含数组而不是映射,你有两个选择

将JSON解析为映射,然后从中检索值。 为这种情况创建一个特定的解析器。
迭代所有对象?数组应以[]开头。