C# 的默认 JSON 序列化工具 Newtonsoft.Json 是不支持循环引用的。当序列化对象时,如果存在循环引用,会抛出异常。
不过,可以通过设置 JsonSerializerSettings 的 PreserveReferencesHandling 属性来支持循环引用的序列化。示例如下:
var settings = new JsonSerializerSettings
{
PreserveReferencesHandling = PreserveReferencesHandling.Objects
};
string json = JsonConvert.SerializeObject(yourObject, settings);
通过设置 PreserveReferencesHandling 为 Objects,可以保留对象引用关系,从而支持序列化循环引用。