JsonWriter.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  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 string ToJson<T>(this T obj, bool prettyPrint, JsonSerializerSettings settings = null) where T : class
  12. {
  13. settings ??= _defaultSettings;
  14. settings.Formatting = prettyPrint ? Formatting.Indented : Formatting.None;
  15. return JsonConvert.SerializeObject(obj, settings);
  16. }
  17. public static T FromJson<T>(this string json, JsonSerializerSettings settings = null) where T : class
  18. {
  19. settings ??= _defaultSettings;
  20. return JsonConvert.DeserializeObject<T>(json, settings);
  21. }
  22. private static readonly JsonSerializerSettings _defaultSettings = new()
  23. {
  24. Formatting = Formatting.None,
  25. NullValueHandling = NullValueHandling.Ignore,
  26. DefaultValueHandling = DefaultValueHandling.Include,
  27. ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
  28. Converters = UnityTypeConverters.Converters
  29. };
  30. }
  31. }