JsonWriter.cs 980 B

12345678910111213141516171819202122232425262728
  1. using Newtonsoft.Json;
  2. namespace LLM.Editor.Helper
  3. {
  4. public static class JsonWriter
  5. {
  6. public static string ToJson<T>(this T obj, JsonSerializerSettings settings = null) where T : class
  7. {
  8. settings ??= _defaultSettings;
  9. return JsonConvert.SerializeObject(obj, settings);
  10. }
  11. public static T FromJson<T>(this string json, JsonSerializerSettings settings = null) where T : class
  12. {
  13. settings ??= _defaultSettings;
  14. return JsonConvert.DeserializeObject<T>(json, settings);
  15. }
  16. private static readonly JsonSerializerSettings _defaultSettings = new()
  17. {
  18. Formatting = Formatting.None,
  19. NullValueHandling = NullValueHandling.Ignore,
  20. DefaultValueHandling = DefaultValueHandling.Include,
  21. TypeNameHandling = TypeNameHandling.Auto,
  22. ReferenceLoopHandling = ReferenceLoopHandling.Ignore
  23. };
  24. }
  25. }