Java Gson和将列表转换为JSON时出现问题
我正在努力将从Primefaces选取列表生成的字符串转换为JSONJava Gson和将列表转换为JSON时出现问题,java,json,jsf,primefaces,Java,Json,Jsf,Primefaces,我正在努力将从Primefaces选取列表生成的字符串转换为JSON Gson gson = new Gson(); System.out.println(gameTaskHotspots.getTarget().toString()); Type type = new TypeToken<List<GameTaskHotspot>>(){}.getType(); if(gameTaskHotspots.getTarget().size
Gson gson = new Gson();
System.out.println(gameTaskHotspots.getTarget().toString());
Type type = new TypeToken<List<GameTaskHotspot>>(){}.getType();
if(gameTaskHotspots.getTarget().size() > 0){
List<GameTaskHotspot> list = gameTaskHotspots.getTarget();
selectedTask.input = gson.toJson(list);
}
System.out.println(selectedTask.input);
第二个输出是
["co.beek.pano.model.beans.GameTaskHotspot@4697b22e","co.beek.pano.model.beans.GameTaskHotspot@2b7ab42b","co.beek.pano.model.beans.GameTaskHotspot@344f3665"]
好像它没有正确地读取对象。我尝试使用类型为对象指定Gson,但出现以下错误:
javax.el.ELException:/views/guide/admin.xhtml@246147
actionListener=“#{GuideViewAdminController.saveSelectedTask()}”:
java.lang.IllegalArgumentException:无法设置java.lang.String字段
co.beek.pano.model.beans.GameTaskHotspot.id到java.lang.String
顺便说一句,我使用它将Json转换为对象列表,效果非常好
GameTaskHotspot[] existing = gson.fromJson(type == 0 ? selectedTask.input : selectedTask.output, GameTaskHotspot[].class);
我必须使用转换器将对象转换为JSON 将此添加到选择列表中是有效的 需要使用转换器
GameTaskHotspot[] existing = gson.fromJson(type == 0 ? selectedTask.input : selectedTask.output, GameTaskHotspot[].class);