PlayFramework尝试序列化java.lang.Class

时间:2016-11-04 20:10:21

标签: java playframework playframework-2.0 gson

我正在尝试将gson集成到我的Play中! 2.x版本我正在使用gson& jongo并面临此错误:http://hastebin.com/agewopocen.bash

这是我的模特课:

public class Person extends MongoModel<Person>
{

    ObjectId _id;
    String name;
    int age;

    public Person()
    {
        super(Person.class, "person");
    }

    public Person(String name, int age)
    {
        super(Person.class, "person");
        this.name = name;
        this.age = age;
        System.out.println();
    }

    @Override
    public Person setModel()
    {
        return this;
    }

    @Override
    public ObjectId getId()
    {
        return null;
    }

    public void setName(String name)
    {
        this.name = name;
    }

    public String getName()
    {
        return name;
    }

    public int getAge()
    {
        return age;
    }

    public void setAge(int age)
    {
        this.age = age;
    }

    public String toJson()
    {
        return new GsonBuilder().create().toJson(this);
    }

    @Override
    public String toString()
    {
        return new Gson().toJson(this);
    }
}

我不知道“TypeAdapter”是什么(在上面的链接中的错误日志中提到),我相信我们可以在不使用它的情况下使用它。但是,我不知道我错过了什么。

这是我尝试的代码(没有Play,在常规Java中)并且它可以工作。

public class Test
{

    public static void main(String[] args)
    {
        Person nfe = new Person(10, "nfe");
        String s = new Gson().toJson(nfe);
        System.out.println(s);
    }

    public static class Person {
        int age;
        String name;

        public Person(int age, String name)
        {
            this.age = age;
            this.name = name;
        }


        public int getAge()
        {
            return age;
        }

        public void setAge(int age)
        {
            this.age = age;
        }

        public void setName(String name)
        {
            this.name = name;
        }
    }
}

输出:

{"age":10,"name":"nfe"}

有人可以帮我解决这个问题吗?

0 个答案:

没有答案