0

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

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

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;
}

因此 JSON 的输出如下所示: { "firstname" : "XXX", "lastname" : "YYY" }

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

谢谢你看...

4

1 回答 1

1

那不是有效的 JSON。JSON 只是一种数据表示,对类型信息等元数据一无所知。

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

{ "@type":"Person", "firstname":"XXX", "lastname":"YYY" }

然而,这意味着您在反序列化时必须选择正确的类。您可能想查看一些库,但我认为它们要么要求您自己指定类,要么向可序列化类添加自定义注释。

于 2012-11-29T21:33:09.620 回答