Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 使用Json.Net将int转换为bool_C# 4.0_Json.net_Deserialization - Fatal编程技术网

C# 4.0 使用Json.Net将int转换为bool

C# 4.0 使用Json.Net将int转换为bool,c#-4.0,json.net,deserialization,C# 4.0,Json.net,Deserialization,我正在调用一个webservice,bool字段的返回数据为0或1,但是对于我的模型,我使用的是System.bool 使用Json.Net,是否可以将0/1转换为我的模型的布尔值 目前我得到一个错误 Newtonsoft.Json.JsonSerializationException:将值“0”转换为类型“System.Boolean”时出错 任何帮助都会很棒 最终创建了一个转换器 public class BoolConverter : JsonConverter { public

我正在调用一个webservice,bool字段的返回数据为0或1,但是对于我的模型,我使用的是System.bool

使用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
中的
bool?
,是否有可能在不添加JsonConverter属性的情况下,将此自定义转换器应用于所有对象的所有bool属性?