使用 Json.Net 将 int 转换为 bool [重复]
Posted
技术标签:
【中文标题】使用 Json.Net 将 int 转换为 bool [重复]【英文标题】:Convert an int to bool with Json.Net [duplicate] 【发布时间】:2013-01-03 20:32:27 【问题描述】:我正在调用 Web 服务,返回的布尔字段数据为 0 或 1,但是对于我的模型,我使用的是 System.Bool
使用 Json.Net 是否可以将 0/1 转换为我的模型的布尔值?
目前我收到一个错误
Newtonsoft.Json.JsonSerializationException:将值“0”转换为类型“System.Boolean”时出错
任何帮助都会很棒!
【问题讨论】:
【参考方案1】:最终创建了一个转换器
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 属性的情况下将此自定义转换器应用于所有对象的所有布尔属性?以上是关于使用 Json.Net 将 int 转换为 bool [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 json.net 将 c# 通用列表转换为 json?
如何使用 json.net 将 c# 通用列表转换为 json?
如何使用 json.net 将数据表转换为 json 字符串?
如何将 HTML 表转换为 JSON 并将 JSON 与 JSON.NET 一起使用?