using System; using System.Text.Json; using System.Text.Json.Serialization; namespace CryptoExchange.Net.Converters.SystemTextJson { /// /// Read string or number as string /// public class NumberStringConverter : JsonConverter { /// public override string? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { if (reader.TokenType == JsonTokenType.Null) return null; if (reader.TokenType == JsonTokenType.Number) { if (reader.TryGetInt64(out var value)) return value.ToString(); return reader.GetDecimal().ToString(); } try { return reader.GetString(); } catch (Exception) { return null; } } /// public override void Write(Utf8JsonWriter writer, string? value, JsonSerializerOptions options) { writer.WriteStringValue(value); } } }