iotgateway/WalkingTec.Mvvm/WalkingTec.Mvvm.Core/Json/BoolStringConverter.cs
2021-12-14 14:10:44 +08:00

63 lines
1.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Reflection;
using System.Text.Encodings.Web;
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Text.Unicode;
using NPOI.SS.Formula.Functions;
using WalkingTec.Mvvm.Core.Extensions;
namespace WalkingTec.Mvvm.Core.Json
{
public class BoolStringConverter :
JsonConverter<bool>
{
public override bool Read(
ref Utf8JsonReader reader,
Type typeToConvert,
JsonSerializerOptions options)
{
JsonTokenType token = reader.TokenType;
if (token == JsonTokenType.String)
{
var s = reader.GetString() ?? "";
if (s.ToLower() == "true")
{
return true;
}
else if (s.ToLower() == "false")
{
return false;
}
else
{
return false;
}
}
else if (token == JsonTokenType.True || token == JsonTokenType.False)
{
return reader.GetBoolean();
}
else
{
return false;
}
}
public override void Write(
Utf8JsonWriter writer,
bool data,
JsonSerializerOptions options)
{
writer.WriteBooleanValue(data);
}
}
}