在C#中,如果在反序列化过程中遇到循环引用(即对象之间相互引用),可以使用Json.NET库中的PreserveReferencesHandling属性来处理循环引用。
具体做法是在JsonSerializerSettings中设置PreserveReferencesHandling属性为PreserveReferencesHandling.Objects,示例代码如下:
// 创建JsonSerializerSettings对象 JsonSerializerSettings settings = new JsonSerializerSettings { PreserveReferencesHandling = PreserveReferencesHandling.Objects }; // 反序列化JSON字符串 var result = JsonConvert.DeserializeObject(jsonString, settings);
通过设置PreserveReferencesHandling属性为PreserveReferencesHandling.Objects,Json.NET库会在反序列化过程中保持对象之间的引用关系,以避免循环引用导致的异常。