如何将模型转换为 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 模型?

如何将 .obj 转换为 .json 格式的 3D 模型?

如何为three.js模型加载器将对象转换为json文件

如何将训练有素的 Tensorflow 模型转换为 Keras?

将动态json模型转换为c#对象[重复]