Newer
Older
hypermedia-blazorcrud / Blazorcrud.Client / Shared / StringConverter.cs
@Derek Comartin Derek Comartin on 12 Jul 851 bytes Init
using System.Text.Json;
using System.Text.Json.Serialization;

namespace Blazorcrud.Client.Shared
{
    public class StringConverter : JsonConverter<string>
    {
        public override string Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
        {
            // deserialize numbers as strings.
            if (reader.TokenType == JsonTokenType.Number)
            {
                return reader.GetInt32().ToString();
            }
            else if (reader.TokenType == JsonTokenType.String)
            {
                return reader.GetString();
            }
 
            throw new System.Text.Json.JsonException();
        }
 
        public override void Write(Utf8JsonWriter writer, string value, JsonSerializerOptions options)
        {
            writer.WriteStringValue(value);
        }
    }
}