JsonOmdbNotAvailableStringConverter.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using System;
  2. using System.Text.Json;
  3. using System.Text.Json.Serialization;
  4. using Jellyfin.Extensions.Json;
  5. namespace MediaBrowser.Providers.Plugins.Omdb
  6. {
  7. /// <summary>
  8. /// Converts a string <c>N/A</c> to <c>string.Empty</c>.
  9. /// </summary>
  10. public class JsonOmdbNotAvailableStringConverter : JsonConverter<string?>
  11. {
  12. /// <inheritdoc />
  13. public override string? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
  14. {
  15. if (reader.IsNull())
  16. {
  17. return null;
  18. }
  19. if (reader.TokenType == JsonTokenType.String)
  20. {
  21. // GetString can't return null here because we already handled it above
  22. var str = reader.GetString()!;
  23. if (str.Equals("N/A", StringComparison.OrdinalIgnoreCase))
  24. {
  25. return null;
  26. }
  27. return str;
  28. }
  29. return JsonSerializer.Deserialize<string?>(ref reader, options);
  30. }
  31. /// <inheritdoc />
  32. public override void Write(Utf8JsonWriter writer, string? value, JsonSerializerOptions options)
  33. {
  34. writer.WriteStringValue(value);
  35. }
  36. }
  37. }