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);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM