如何将模型转换为JSON

时间:2018-10-18 14:50:25

标签: json apache-cayenne

当我天真地使用Jackson转换为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 :(得分:0)

考虑到一般情况下,Cayenne不仅为您提供对象,而且还为对象提供虚拟的,因此序列化为JSON变得比最初看起来更加古怪。

简短的答案:您将为对象图的任何子图手动构建JSON。

虽然不是直接的答案,但值得一提的是Agrest framework(例如LinkRest)支持将Cayenne对象图基于规则的序列化为JSON。但这不是一个独立的组件。即只有将其用于REST服务时,它才有效。