C#Json序列化和序列化bool变量
原创问题描述:
Json当串行化时,Bool类型转换string类型,然后反序列化以获取该类型,以便于我的字段类型不匹配。
解决方案:
///
/// 自定义布尔类型数据转换规则
///
public class MyBoolConverter : JsonConverter
{
private const string TrueStr = "TRUE";
private const string FalseStr = "FALSE";
public override bool CanConvert(Type objectType) => true;
//反序列化
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
if (reader.ValueType == typeof(string))
{
if ((string)reader.Value == TrueStr)
{
return true;
}
else
{
return false;
}
}
return false;
}
//序列化
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
if (value.GetType() == typeof(bool))
{
bool result = (bool)value;
if (result)
{
writer.WriteValue(TrueStr);
}
else
{
writer.WriteValue(FalseStr);
}
}
}
}
如何使用
//类型定义中需要操作的字段/将此功能添加到属性:
private class MyClass
{
[JsonConverter(typeof(MyBoolConverter))]
public bool MyBool;
} 版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
itfan123




