Java 如何在Gson中序列化列表对象

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

我使用下面的方法(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;
   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);