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 namespace Newtonsoft.Json.Converters
{ {
internal class YesOrNoNullableBooleanConverter : JsonConverter<bool?> internal class YesOrNoNullableBooleanConverter : JsonConverter<bool?>
{ {
private const string CHAR_YES = "Y";
private const string CHAR_NO = "N";
public override bool CanRead public override bool CanRead
{ {
get { return true; } get { return true; }
@@ -14,35 +17,35 @@ namespace Newtonsoft.Json.Converters
get { return true; } 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; return existingValue;
} }
else if (reader.TokenType == Newtonsoft.Json.JsonToken.Boolean) else if (reader.TokenType == JsonToken.Boolean)
{ {
return serializer.Deserialize<bool>(reader); 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); string? value = serializer.Deserialize<string>(reader);
if (value == null) if (value == null)
return existingValue; return existingValue;
if ("Y".Equals(value)) if (CHAR_YES.Equals(value))
return true; return true;
else if ("N".Equals(value)) else if (CHAR_NO.Equals(value))
return false; 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) if (value.HasValue)
writer.WriteValue(value.Value ? "Y" : "N"); writer.WriteValue(value.Value ? CHAR_YES : CHAR_NO);
else else
writer.WriteNull(); writer.WriteNull();
} }

View File

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