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