Есть ли библиотека JSON, которая может сериализовать объекты Proxy? - PullRequest
3 голосов
/ 28 апреля 2010

Использование ActiveObjects в качестве моего ORM и Gson в качестве моего JSON-процессора.

Натолкнулся на проблему с Джонсоном из постоянные объекты. Проблема в том, что мой постоянный класс на самом деле Интерфейс и 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...

Потому что venue.getClass (). GetName () дает:

$ Proxy228

Я пробовал несколько решений в различных комбинациях:

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

Пока ничего не получалось, и я использую обходной обходной путь. Какие-либо предложения? Я не женат на Гсоне, поэтому, если есть альтернативная библиотека, которая могла бы сделать это, я был бы счастлив ее использовать.

Ответы [ 2 ]

0 голосов
/ 30 апреля 2010

Также проверьте Джексон .

0 голосов
/ 29 апреля 2010

Flex JSON должен работать - он будет использовать интроспектор свойства bean для извлечения объекта, и я предполагаю, что прокси-класс реализует их правильно.

...