2022-11-14 乐帮网
c# .net
NewtonSoft.Json对需要转为JSON字符串的对象的NULL值以及DBNull是直接处理成NULL的。对DBNull 的JSON字符串对应需要空字符串。
/// <summary>
/// 对DBNull的转换处理,此处只写了转换成JSON字符串的处理,JSON字符串转对象的未处理
/// </summary>
public class DBNullCreationConverter : JsonConverter
{
/// <summary>
/// 是否允许转换
/// </summary>
public override bool CanConvert(Type objectType)
{
bool canConvert = false;
switch (objectType.FullName)
{
case "System.DBNull":
canConvert = true;
break;
}
return canConvert;
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
return existingValue;
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
writer.WriteValue(string.Empty);
}
public override bool CanRead
{
get
{
return false;
}
}
/// <summary>
/// 是否允许转换JSON字符串时调用
/// </summary>
public override bool CanWrite
{
get
{
return true;
}
}
}
使用如下:
IsoDateTimeConverter timeFormat = new IsoDateTimeConverter();
DBNullCreationConverter x = new DBNullCreationConverter();
timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
return JsonConvert.SerializeObject(ds.Tables, Newtonsoft.Json.Formatting.Indented, timeFormat, x);
关注我的微信公众号
在公众号里留言交流
投稿邮箱:1052839972@qq.com
庭院深深深几许?杨柳堆烟,帘幕无重数。
玉勒雕鞍游冶处,楼高不见章台路。
雨横风狂三月暮。门掩黄昏,无计留春住。
泪眼问花花不语,乱红飞过秋千去。
如果感觉对您有帮助
欢迎向作者提供捐赠
这将是创作的最大动力