zoukankan      html  css  js  c++  java
  • NewtonSoft.Json NULL转空字符串

    from:http://www.cnblogs.com/hetuan/articles/4565702.html

    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);
  • 相关阅读:
    iOS8 新特性
    iOS Autoresizing Autolayout Size classes
    tabBar的内部控件
    导航控制器的根控制器 是滚动性&普通的frame区别
    选择排序&冒泡排序&折半查找
    站内搜索
    Shell安装
    Xcode themes
    扫码跳转AppStore
    iOS手机APP命名规范整理
  • 原文地址:https://www.cnblogs.com/liuqiyun/p/8126916.html
Copyright © 2011-2022 走看看