Java JSON对象表示

Java JSON对象表示,java,json,Java,Json,我是JSON新手。所以请帮助我 我正在尝试编写一个Rest服务,该服务返回Person对象,如下所示: PersonJSONAdapter implements JsonSerializer<Person>, JsonDeserializer<Person> { public JsonElement serialize(final Person src, final Type typeOfSrc, final JsonSerializationConte

我是JSON新手。所以请帮助我

我正在尝试编写一个Rest服务,该服务返回Person对象,如下所示:

PersonJSONAdapter implements JsonSerializer<Person>, JsonDeserializer<Person>
{
    public JsonElement serialize(final Person src, final Type typeOfSrc, final      JsonSerializationContext context)
    {
        if (src == null)
            return null;

        final JsonObject retVal = new JsonObject();

        retVal.addProperty("firstname", src.getFirstname());
        retVal.addProperty("lastname", src.getLastname());

        return retVal;
}
PersonJSONAdapter实现JsonSerializer、JsonDeserializer
{
公共JsonElement序列化(final Person src、final Type typeOfSrc、final JsonSerializationContext)
{
如果(src==null)
返回null;
final JsonObject retVal=新的JsonObject();
retVal.addProperty(“firstname”,src.getFirstname());
retVal.addProperty(“lastname”,src.getLastname());
返回返回;
}
因此,JSON的输出如下所示: {“firstname”:“XXX”, “lastname”:“YYY” }

我怎样才能让这个看起来像 “人” { “名字”:“XXX”, “lastname”:“YYY” }


感谢您查找…

这不是有效的JSON。JSON只是一种数据表示,不了解元数据,例如类型信息

最接近的方法是将类型显式添加为额外属性,例如:

{“@type”:“Person”,“firstname”:“XXX”,“lastname”:“YYY”}

但是,这意味着您必须在反序列化时选择正确的类。您可能希望签出一些库,但我认为它们需要您自己指定类,或者向可序列化类添加自定义注释