refactor(tenpayv3)

This commit is contained in:
Fu Diwei
2022-11-07 22:33:36 +08:00
parent 0cf810cec4
commit dfdf413091
2 changed files with 20 additions and 14 deletions

View File

@@ -1,9 +1,12 @@
using System;
using System;
namespace Newtonsoft.Json.Converters
{
internal class YesOrNoNullableBooleanConverter : JsonConverter<bool?>
{
private const string CHAR_YES = "Y";
private const string CHAR_NO = "N";
public override bool CanRead
{
get { return true; }
@@ -14,35 +17,35 @@ namespace Newtonsoft.Json.Converters
get { return true; }
}
public override bool? ReadJson(Newtonsoft.Json.JsonReader reader, Type objectType, bool? existingValue, bool hasExistingValue, Newtonsoft.Json.JsonSerializer serializer)
public override bool? ReadJson(JsonReader reader, Type objectType, bool? existingValue, bool hasExistingValue, JsonSerializer serializer)
{
if (reader.TokenType == Newtonsoft.Json.JsonToken.Null)
if (reader.TokenType == JsonToken.Null)
{
return existingValue;
}
else if (reader.TokenType == Newtonsoft.Json.JsonToken.Boolean)
else if (reader.TokenType == JsonToken.Boolean)
{
return serializer.Deserialize<bool>(reader);
}
else if (reader.TokenType == Newtonsoft.Json.JsonToken.String)
else if (reader.TokenType == JsonToken.String)
{
string? value = serializer.Deserialize<string>(reader);
if (value == null)
return existingValue;
if ("Y".Equals(value))
if (CHAR_YES.Equals(value))
return true;
else if ("N".Equals(value))
else if (CHAR_NO.Equals(value))
return false;
}
throw new Newtonsoft.Json.JsonReaderException();
throw new JsonReaderException();
}
public override void WriteJson(Newtonsoft.Json.JsonWriter writer, bool? value, Newtonsoft.Json.JsonSerializer serializer)
public override void WriteJson(JsonWriter writer, bool? value, JsonSerializer serializer)
{
if (value.HasValue)
writer.WriteValue(value.Value ? "Y" : "N");
writer.WriteValue(value.Value ? CHAR_YES : CHAR_NO);
else
writer.WriteNull();
}

View File

@@ -1,9 +1,12 @@
using System.Text.Json.Serialization;
using System.Text.Json.Serialization;
namespace System.Text.Json.Converters
{
internal class YesOrNoNullableBooleanConverter : JsonConverter<bool?>
{
private const string CHAR_YES = "Y";
private const string CHAR_NO = "N";
public override bool? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
if (reader.TokenType == JsonTokenType.Null)
@@ -24,9 +27,9 @@ namespace System.Text.Json.Converters
if (value == null)
return null;
if ("Y".Equals(value))
if (CHAR_YES.Equals(value))
return true;
else if ("N".Equals(value))
else if (CHAR_NO.Equals(value))
return false;
}
@@ -36,7 +39,7 @@ namespace System.Text.Json.Converters
public override void Write(Utf8JsonWriter writer, bool? value, JsonSerializerOptions options)
{
if (value.HasValue)
writer.WriteStringValue(value.Value ? "Y" : "N");
writer.WriteStringValue(value.Value ? CHAR_YES : CHAR_NO);
else
writer.WriteNullValue();
}