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

これを "Person" { "firstname": "XXX", "lastname":"YYY" } のようにするにはどうすればよいですか

ご覧いただきありがとうございます...

4

1 に答える 1

1

これは有効な JSON ではありません。JSON は単なるデータ表現であり、型情報などのメタデータに関する知識はありません。

あなたが得ることができる最も近いものは、次のようにタイプを追加のプロパティとして明示的に追加することです:

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

ただし、これは、逆シリアル化するときに適切なクラスを選択する必要があることを意味します。いくつかのライブラリをチェックアウトすることもできますが、クラスを自分で指定するか、シリアライズ可能なクラスにカスタム アノテーションを追加する必要があると思います。

于 2012-11-29T21:33:09.620 に答える