java - Json 对象到 java arraylist

标签 java json gson

我已经将两个值从 ajax 传递到我的 servlet。

我用过

JsonObject data = new Gson().fromJson(request.getReader(), JsonObject.class);
System.out.println(data);

这是输出

{"0":"31/01/2017","1":"19/01/2017"}

现在我想将这些数据转换成 java arraylist 但不确定如何。

我试过了

Gson googleJson = new Gson();
JsonObject data = googleJson.fromJson(request.getReader(), JsonObject.class);
System.out.println(data);
JsonArray jsonArr = data.getAsJsonArray();
// jsonArr.

ArrayList jsonObjList = googleJson.fromJson(jsonArr, ArrayList.class);
for(int i=0; i< jsonObjList.size(); i++) {
    System.out.println(jsonObjList.get(i));
}

但是报错了

java.lang.IllegalStateException: This is not a JSON Array.


有人帮帮我吗?谢谢。

最佳答案

创建 JsonArray 的实例,然后使用键将 json 元素添加到该数组。

这是您的解决方案:

Gson googleJson = new Gson();
JsonObject data = googleJson.fromJson(request.getReader(), JsonObject.class);
System.out.println(data);
JsonArray jsonArr = new JsonArray();

for(Entry<String, JsonElement> entry : data.entrySet()) {
    jsonArr.add(data.get(entry.getKey()));
}

ArrayList jsonObjList = googleJson.fromJson(jsonArr, ArrayList.class);
for(int i = 0; i < jsonObjList.size(); i++) {
    System.out.println(jsonObjList.get(i));
}

关于java - Json 对象到 java arraylist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41415249/

相关文章:

java - ImmutableList<String> 类型的方法未定义

objective-c - Cocoa:将 json 字符串反序列化为自定义对象(不是 NSDictionary、NSArray)

android - 从 Gson 更改为 Jackson 进行 JSON 解析

java - 对象中一个变量的 Gson 自定义解串器

java - Json 结构如此不同,无法将其更改为 Java 对象

java 库,支持异步编写 futures (flatMap)

Javac 未被识别为内部或外部命令

python - Shapefile 到 geojson 转换 python 3

java - 使用用户输入数组的移动平均线

java - 从返回 xml 的请求中获取单个值的最佳方法?