51 lines
1.6 KiB
C#
51 lines
1.6 KiB
C#
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
namespace YLErp.Converter
|
|
{
|
|
public class StringConverter : JsonConverter<string>
|
|
{
|
|
//public override string? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
|
|
//{
|
|
// if (reader.TokenType == JsonTokenType.String)
|
|
// {
|
|
// return reader.GetString();
|
|
// }
|
|
// else
|
|
// {
|
|
// //非字符类型,返回原生内容
|
|
// return GetRawPropertyValue(reader);
|
|
// }
|
|
//}
|
|
|
|
//public override void Write(Utf8JsonWriter writer, string value, JsonSerializerOptions options)
|
|
//{
|
|
// writer.WriteStringValue(value);
|
|
//}
|
|
|
|
///// <summary>
|
|
///// 非字符类型,返回原生内容
|
|
///// </summary>
|
|
///// <param name="jsonReader"></param>
|
|
///// <returns></returns>
|
|
//private static string GetRawPropertyValue(JsonReader jsonReader)
|
|
//{
|
|
// ReadOnlySpan<byte> utf8Bytes = jsonReader.HasValueSequence ?
|
|
// jsonReader.ValueSequence.ToArray() :
|
|
// jsonReader.ValueSpan;
|
|
// return Encoding.UTF8.GetString(utf8Bytes);
|
|
//}
|
|
|
|
public override void WriteJson(JsonWriter writer, string? value, JsonSerializer serializer)
|
|
{
|
|
writer.WriteValue(value);
|
|
}
|
|
|
|
public override string? ReadJson(JsonReader reader, Type objectType, string? existingValue, bool hasExistingValue, JsonSerializer serializer)
|
|
{
|
|
return reader.ReadAsString();
|
|
}
|
|
}
|
|
}
|