using Newtonsoft.Json; namespace LLM.Editor.Helper { public static class JsonWriter { public static string ToJson(this T obj, JsonSerializerSettings settings = null) where T : class { settings ??= _defaultSettings; return JsonConvert.SerializeObject(obj, settings); } public static T FromJson(this string json, JsonSerializerSettings settings = null) where T : class { settings ??= _defaultSettings; return JsonConvert.DeserializeObject(json, settings); } private static readonly JsonSerializerSettings _defaultSettings = new() { Formatting = Formatting.None, NullValueHandling = NullValueHandling.Ignore, DefaultValueHandling = DefaultValueHandling.Include, TypeNameHandling = TypeNameHandling.Auto, ReferenceLoopHandling = ReferenceLoopHandling.Ignore }; } }