我已经将两个值从 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/