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

本文关键字:结构 对象 序列化 Json 引用 循环 | 更新日期: 2023-09-27 18:24:47

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

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并忽略循环属性?

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

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

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

如果你正在开发MVC应用程序,你也可以全局定义这个变量。。。