Как конвертировать модель в JSON - PullRequest
0 голосов
/ 18 октября 2018

Когда я наивно использую Джексона для преобразования в JSON, я получаю следующее исключение:

Причина: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Сериализатор не найден для класса org.apache.cayenne.access.DefaultDataRowStoreFactory и не найдены свойства для создания BeanSerializer

Редактировать: Я хотел бы сделать что-то вроде этого:

ObjectContext context = cayenneRuntime.newContext();

List<User> users = ObjectSelect.query(User.class).select(context);
JsonObject json = Json.mapper.convertValue(obj, Map.class)

Существуют ли какие-либо существующие решения?Спасибо

1 Ответ

0 голосов
/ 22 октября 2018

Учитывая, что в общем случае Cayenne предоставляет вам не только объекты, но и виртуальный граф объектов, сериализация в JSON становится более причудливой темой, чем кажется на первый взгляд.

Краткий ответ: вам бы пришлось вручную собрать JSON для любого подграфа вашего графа объектов.

Хотя это и не прямой ответ, стоит упомянуть, что Agrest Framework (например, LinkRest) поддерживает сериализацию графов объектов Cayenne на основе правил в JSON.Но это не отдельный компонент.Т.е. это будет работать, только если вы используете его для своих REST-сервисов.

...