3

ActiveObjects を ORM として使用し、Gson を JSON プロセッサとして使用します。

永続化されたオブジェクトから toJson に移動するときに問題が発生しました。問題は、永続化されたクラスが実際にはインターフェイスであり、AO が内部でそのオブジェクトをプロキシしていることです。サンプルコードは次のとおりです。

    Venue venue = manager.get(Venue.class, id);
    gson.toJson(venue);

この例外が発生します:

java.lang.UnsupportedOperationException: Expecting parameterized type,
got interface java.lang.reflect.InvocationHandler.
 Are you missing the use of TypeToken idiom?
 See http://sites.google.com/site/gson/gson-user-guide#TOC-Serializing-and...

会場.getClass().getName() が与えるため:

$Proxy228

さまざまな組み合わせでいくつかのソリューションを試しました:

    gsonBuilder.registerTypeAdapter(Venue.class, newVenueSerializer());
    Type listType = new TypeToken<Venue>() {}.getType();

これまでのところ何も機能しておらず、フィールドごとの不安定な回避策を使用しています。助言がありますか?私は Gson と結婚していないので、これを行うことができる代替ライブラリがあれば喜んで使用します。

4

2 に答える 2

0

また、ジャクソンをチェックしてください。

于 2010-04-30T18:27:35.973 に答える
0

Flex JSONが機能するはずです。Bean プロパティのイントロスペクターを使用してオブジェクトを取得します。プロキシ クラスがそれらを適切に実装していると思います。

于 2010-04-28T22:15:00.250 に答える