c# - 如何将具有循环引用的对象结构序列化为 Json?

标签 c# json wcf serialization

我有一个这样的对象结构:

public class Proposal {
    public List<ProposalLine> Lines { get; set; }
    public string Title { get; set; }
}

public class ProposalLine {
    public Proposal Proposal { get; set; }  // <- Reference to parent object
}

我尝试将 Proposal 序列化为 Json,它告诉我存在循环引用,这是正确的。
不幸的是,我无法触摸这些对象,因为它们在另一个项目的引用 DLL 中 - 否则我会更改它们。

有没有办法序列化为 Json 并忽略循环属性?

最佳答案

使用 Newtonsoft.Json(这是默认的 .net json 序列化程序)并设置

JsonSerializerSettings settings = new JsonSerializerSettings
{
    PreserveReferencesHandling = PreserveReferencesHandling.Objects
};
var serializer = JsonSerializer.Create(settings);

如果您正在开发 MVC 应用程序,您还可以全局定义此变量...

关于c# - 如何将具有循环引用的对象结构序列化为 Json?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17818386/

相关文章:

c# - 关闭另一个窗口时如何从一个窗口更新组合框?

c# - ManagementScope 和 "root\cimv2"?

java - 存储 Java UI 应用程序配置/设置的最佳实践

c# - IIS Apppool 断开与 WCF 服务的连接

c# - MVC 4 Web Api 发布

c# - 为每个页面使用不同的 DbContext 类的好习惯?

java - Jmeter中Json转Java对象的方法

java - 如何让 Jersey/Jackson 序列化空列表;单个元素列表作为数组

javascript - 从 javascript 调用 WCF 服务

c# - 生成的服务引用可能抛出哪些异常?