LongJsonConverter.cs 1003 B

12345678910111213141516171819202122232425262728293031323334353637
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Text.Json;
  5. using System.Text.Json.Serialization;
  6. namespace Long.Utils.Converter
  7. {
  8. public class LongJsonConverter : JsonConverter<long>
  9. {
  10. public override long Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
  11. {
  12. if (reader.TokenType == JsonTokenType.String)
  13. {
  14. string @string = reader.GetString() ?? "";
  15. if (long.TryParse(@string, out var result))
  16. {
  17. return result;
  18. }
  19. return 0L;
  20. }
  21. if (reader.TokenType != JsonTokenType.Number)
  22. {
  23. return 0L;
  24. }
  25. return reader.GetInt64();
  26. }
  27. public override void Write(Utf8JsonWriter writer, long value, JsonSerializerOptions options)
  28. {
  29. writer.WriteStringValue(value.ToString());
  30. }
  31. }
  32. }