34
我打电话了布尔领域的互联网服务和返回的数据为bool是0或1但与我的模型我使用的是System.Bool转换int型Json.Net
随着Json.Net是有可能将0/1转换为我的模型的布尔值?
目前,我得到一个错误
Newtonsoft.Json.JsonSerializationException:错误的转换数值 “0”,键入 'System.Boolean'
任何帮助将是真棒!
我打电话了布尔领域的互联网服务和返回的数据为bool是0或1但与我的模型我使用的是System.Bool转换int型Json.Net
随着Json.Net是有可能将0/1转换为我的模型的布尔值?
目前,我得到一个错误
Newtonsoft.Json.JsonSerializationException:错误的转换数值 “0”,键入 'System.Boolean'
任何帮助将是真棒!
端了我的模型内创建一个转换器
public class BoolConverter : JsonConverter
{
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
writer.WriteValue(((bool)value) ? 1 : 0);
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
return reader.Value.ToString() == "1";
}
public override bool CanConvert(Type objectType)
{
return objectType == typeof(bool);
}
}
然后
[JsonConverter(typeof(BoolConverter))]
public bool active { get; set; }
希望这可以帮助别人
根据不同的情况,你可能还需要'布尔?'的' CanConvert' –
是否有可能将这个自定义转换器应用于所有对象的所有布尔属性,而无需添加JsonConverter属性? – Grengas