Java 如何在Gson中序列化列表对象
我使用下面的方法(method from)从DB返回数据: 其中Post.findAll()是从中获取所有记录的方法Java 如何在Gson中序列化列表对象,java,json,serialization,gson,spark-java,Java,Json,Serialization,Gson,Spark Java,我使用下面的方法(method from)从DB返回数据: 其中Post.findAll()是从中获取所有记录的方法 Model:com.soul.seeker.models.Post是下面的POJO类: public class Post extends Model{ private String title; private String details; private String username; private String userImage; pr
Model:com.soul.seeker.models.Post
是下面的POJO类:
public class Post extends Model{
private String title;
private String details;
private String username;
private String userImage;
private String url;
private List categories;
//Getters and Setters removed for brevity
}
我正在尝试使用GSON和
ClassTypeAdapterFactory:
[Model: com.soul.seeker.models.Post, table: 'post', attributes: {created_at=2017-03-26 04:06:35.0, details=aaa, id=36, title=Eventsa, url=eventsa, userImage=assets/img/spiritual-icon4.png, username=null}]
public class ClassTypeAdapterFactory implements TypeAdapterFactory {
@Override
public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> typeToken) {
if(!Class.class.isAssignableFrom(typeToken.getRawType())) {
return null;
}
return (TypeAdapter<T>) new ClassTypeAdapter();
}
}
现在的问题是json out put还包含序列化类,而不是只返回pojo类的List对象。我不熟悉Java和Gson序列化
任何人都可以帮助实现TypeAdapter以只返回列表对象吗?例如:
Type listOfTestObject = new TypeToken<List<TestObject>>(){}.getType();
String s = gson.toJson(list, listOfTestObject);
List<TestObject> list2 = gson.fromJson(s, listOfTestObject);
get("/data_on_page_load", (req, res) -> {
res.type("application/json; charset=UTF-8");
List<Post> list = Post.findAll();
System.out.println("list is " + list);
return list;
}, new Gson()::toJson);
Type listOfTestObject=new-TypeToken(){}.getType();
字符串s=gson.toJson(列表,listOfTestObject);
list2=gson.fromJson(s,listOfTestObject);
我认为您不需要键入响应转换器,您可以直接使用一个新的Gson对象,就像最后一个代码片段一样。结果会是这样的:
Type listOfTestObject = new TypeToken<List<TestObject>>(){}.getType();
String s = gson.toJson(list, listOfTestObject);
List<TestObject> list2 = gson.fromJson(s, listOfTestObject);
get("/data_on_page_load", (req, res) -> {
res.type("application/json; charset=UTF-8");
List<Post> list = Post.findAll();
System.out.println("list is " + list);
return list;
}, new Gson()::toJson);
get(“/data\u on\u page\u load”,(req,res)->{
res.type(“application/json;charset=UTF-8”);
List=Post.findAll();
System.out.println(“列表为”+列表);
退货清单;
},new Gson()::toJson);
get("/data_on_page_load", (req, res) -> {
res.type("application/json; charset=UTF-8");
List<Post> list = Post.findAll();
System.out.println("list is " + list);
return list;
}, new Gson()::toJson);