java arraylist的Json对象
我已经将两个值从ajax传递到我的servlet 我曾经java arraylist的Json对象,java,json,gson,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(); Jso
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));
}
Gson googleJson=new Gson();
JsonObject data=googleJson.fromJson(request.getReader(),JsonObject.class);
系统输出打印项次(数据);
JsonArray jsonArr=data.getAsJsonArray();
//杰索纳尔。
ArrayList jsonObjList=googleJson.fromJson(jsonArr,ArrayList.class);
对于(int i=0;i
但我犯了一个错误
java.lang.IllegalStateException:这不是JSON数组
谁能帮帮我?谢谢。要使Json成为有效的JsonArray对象,您应该将其设置为正确的格式。您可以更改ajax返回的json字符串吗?如果是,您应该将其更改为以下内容:
Gson googleJson = new Gson();
JsonObject data = googleJson.fromJson("{test: [{\"0\":\"31/01/2017\"},{\"1\":\"19/01/2017\"}]}", JsonObject.class);
System.out.println(data);
JsonArray jsonArr = data.getAsJsonArray("test");
ArrayList jsonObjList = googleJson.fromJson(jsonArr, ArrayList.class);
for(int i=0; i< jsonObjList.size(); i++) {
System.out.println(jsonObjList.get(i));
}
Gson googleJson=new Gson();
JsonObject data=googleJson.fromJson({test:[{\'0\':\'31/01/2017\'},{\'1\':\'19/01/2017\'}]},JsonObject.class);
系统输出打印项次(数据);
JsonArray jsonArr=data.getAsJsonArray(“测试”);
ArrayList jsonObjList=googleJson.fromJson(jsonArr,ArrayList.class);
对于(int i=0;i
如果没有,您应该自己解析它,并将其转换为您想要的任何内容。创建
JsonArray
的实例,然后使用key将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));
}
Gson googleJson=new Gson();
JsonObject data=googleJson.fromJson(request.getReader(),JsonObject.class);
系统输出打印项次(数据);
JsonArray jsonArr=新的JsonArray();
for(条目:data.entrySet()){
add(data.get(entry.getKey());
}
ArrayList jsonObjList=googleJson.fromJson(jsonArr,ArrayList.class);
对于(int i=0;i
您可以使用类似于data.getAsString(“0”)
和data.getAsString(“1”)
的东西,因为它是JSONObject
如果我的数据大小不固定怎么办?这意味着数据可以超过2。一种方法是使用entrySet()
并将所有键和值作为mapentry获取,另一种方法是创建POJO类,并使用相应的映射字段,这意味着POJO中的Hashmap可以改为使用Arraylist?我想肯定有办法将其作为Arraylist,你可以在你的问题中提到它作为要求,肯定会有人指导你