javascript - 使用 Json.Net 序列化 Entity Framework 对象

标签 javascript asp.net-mvc entity-framework json.net

如何将 Entity Framework 对象序列化为 JavaScript 对象 (JSON)?我尝试使用 JSON.NET但是当我尝试序列化它时出现以下异常。

异常:Newtonsoft.Json.JsonSerializationException, Message="自引用循环"

希特什

最佳答案

在循环引用方面,听起来您遇到了与原始 DataContract 序列化程序相同的一般问题。虽然对象相互引用在内存中的对象图中相当常见,但如果序列化程序没有专门考虑这种循环引用,则在序列化时不可避免地会导致无限递归。在常见的非二进制序列化格式(XML 和 JSON 是最流行的两种格式)中处理循环引用的既定标准很少(如果有的话)。

Microsoft 通过使用 xml 中的 ref 语义解决了 .NET 3.5 SP1 中 DataContract 序列化程序的循环问题。据我所知,JSON 没有这样的东西,这可能就是 JSON.NET 阻止您序列化对象图的原因。

我会确保您的对象图中只有可单向导航的引用,而不是双向导航(即仅从父到子,而不是从子到父。)那些父/子和子/父是最常见的循环引用类型。也可能是较低级别的 child 最终引用了图的根,导致创建了一个间接循环图(然而,这些往往远不如父/子循环常见。)

一旦消除了对象图中的任何循环引用,就应该能够进行序列化。

关于javascript - 使用 Json.Net 序列化 Entity Framework 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1036377/

相关文章:

javascript - 如何在Three.JS中创建定向光阴影?

javascript - 使用 AJAX 调用生成的数据用于 OnClick 事件

c# - 获取错误 : Object reference not set to an instance of an object

javascript - ASP Net MVC 从 JS 错误调用 Controller 中的函数

c# - 具有多个连接的 Linq 表达式,每个连接都有条件

c# - Entity Framework Core 返回一些选择

c# - Entity Framework - 批量更新/插入/删除缓慢

javascript - 合并并添加数组中对象的值

javascript - 避免从 imports 的 imports 中引入代码

asp.net-mvc - 使用 Entity Framework 添加带有 View 的 MVC Controller (2.0)