如何将模型转换为 JSON
Posted
技术标签:
【中文标题】如何将模型转换为 JSON【英文标题】:How to convert Model to JSON 【发布时间】:2018-10-18 14:50:25 【问题描述】:当我天真地使用 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】:考虑到在一般情况下,Cayenne 不仅为您提供对象,还为您提供对象的虚拟图,序列化到 JSON 成为一个比最初看起来更古怪的话题。
简短的回答:您必须为对象图的任何子图手动构建 JSON。
虽然不是直接的答案,但值得一提的是Agrest framework(例如 LinkRest)支持将 Cayenne 对象图基于规则的序列化为 JSON。但它不是一个独立的组件。 IE。只有将它用于 REST 服务时,它才会起作用。
【讨论】:
以上是关于如何将模型转换为 JSON的主要内容,如果未能解决你的问题,请参考以下文章
如何将此 JSON 格式转换为模型类并使用改造将响应转换为列表
如何将 pandas DataFrame 转换为 json 用于 django 模型?