麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

利用Newtonsoft.Json實現Json序列化與反序列化

2019-11-17 02:13:35
字體:
來源:轉載
供稿:網友

利用Newtonsoft.Json實現Json序列化與反序列化

在項目中用到了Newtonsoft.Json來實現序列化和反序列化,在這里寫下實現代碼。

1、創建類用于排除不序列化的屬性

public class ExcludePRopertiesContractResolver : DefaultContractResolver    {        IEnumerable<string> lstExclude;        public ExcludePropertiesContractResolver(IEnumerable<string> excludedProperties)        {            lstExclude = excludedProperties;        }        protected override IList<JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)        {            return base.CreateProperties(type, memberSerialization).ToList().FindAll(p => !lstExclude.Contains(p.PropertyName));        }    }

2、序列化方法

以下分別是將對象、DataTable、集合序列化為Json字符串的方法:

        /// <summary>        /// T對象轉換成json字符串        /// </summary>        /// <typeparam name="T"></typeparam>        /// <param name="obj"></param>        /// <returns></returns>        public static string GetJsonString<T>(T obj, params string[] ignoreFields)        {            IsoDateTimeConverter iso = new IsoDateTimeConverter();            iso.DateTimeFormat = "yyyy-MM-ddTHH:mm:ss";            iso.DateTimeStyles = System.Globalization.DateTimeStyles.AssumeLocal;            string jsonStr = string.Empty;            JsonSerializerSettings js = new JsonSerializerSettings();            if (ignoreFields != null && ignoreFields.Length > 0)            {                List<string> ignoreList = ignoreFields.ToList();                js.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;                js.ContractResolver = new ExcludePropertiesContractResolver(ignoreList);            }            js.Converters.Add(iso);            jsonStr = JsonConvert.SerializeObject(obj, Formatting.Indented, js);            return jsonStr;        }        /// <summary>        /// DataTable對象轉換成json字符串        /// </summary>        /// <param name="dt"></param>        /// <returns></returns>        public static string GetJsonString(DataTable dt, params string[] ignoreFields)        {            IsoDateTimeConverter iso = new IsoDateTimeConverter();            iso.DateTimeFormat = "yyyy-MM-ddTHH:mm:ss";            iso.DateTimeStyles = System.Globalization.DateTimeStyles.AssumeLocal;            string jsonStr = string.Empty;            JsonSerializerSettings js = new JsonSerializerSettings();            if (ignoreFields != null && ignoreFields.Length > 0)            {                List<string> ignoreList = ignoreFields.ToList();                js.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;                js.ContractResolver = new ExcludePropertiesContractResolver(ignoreList);            }            js.Converters.Add(new DataTableConverter());            js.Converters.Add(iso);            jsonStr = JsonConvert.SerializeObject(dt, Formatting.Indented,js);            return jsonStr;        }        /// <summary>        /// List對象轉換成json字符串        /// </summary>        /// <param name="dt"></param>        /// <returns></returns>        public static string GetJsonString<T>(List<T> list, params string[] ignoreFields)        {            IsoDateTimeConverter iso = new IsoDateTimeConverter();            iso.DateTimeFormat = "yyyy-MM-ddTHH:mm:ss";            iso.DateTimeStyles = System.Globalization.DateTimeStyles.AssumeLocal;            string jsonStr = string.Empty;            JsonSerializerSettings js = new JsonSerializerSettings();            if (ignoreFields != null && ignoreFields.Length > 0)            {                List<string> ignoreList = ignoreFields.ToList();                js.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;                js.ContractResolver = new ExcludePropertiesContractResolver(ignoreList);            }            js.Converters.Add(iso);            jsonStr = JsonConvert.SerializeObject(list, Formatting.Indented, js);            return jsonStr;        }
View Code

3、反序列化

以下是將Json字符串反序列化為對象、集合的方法。

        /// <summary>        /// json字符串轉換成T對象        /// </summary>        /// <typeparam name="T"></typeparam>        /// <param name="jsonStr"></param>        /// <returns></returns>        public static T GetObjectByJsonString<T>(string jsonStr)        {            T obj = JsonConvert.DeserializeObject<T>(jsonStr);            return obj;        }        /// <summary>        /// json字符串轉換成List對象        /// </summary>        /// <typeparam name="T"></typeparam>        /// <param name="jsonStr"></param>        /// <returns></returns>        public static List<T> GetListByJsonString<T>(string jsonStr)        {            List<T> list = JsonConvert.DeserializeObject<List<T>>(jsonStr);            return list;        }
View Code


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 激情网站免费观看 | av在线免费播放网站 | 91精品国产91久久久久久丝袜 | 欧美成人精品欧美一级 | 55夜色66夜色国产精品视频 | 黄色毛片免费看 | 黄色大片网 | 蜜桃麻豆视频 | 密室逃脱第一季免费观看完整在线 | 国产一级一级片 | 蜜桃网站在线观看 | 成人福利视频在线观看 | 久久99国产精品久久 | 午夜视频久久久 | 国产精品99久久久久久久女警 | 欧美精品激情视频 | 一本一道久久久a久久久精品91 | 在线看毛片的网站 | 国产又粗又爽又深的免费视频 | 日韩字幕在线 | 久久看视频 | 亚洲片在线观看 | 欧美性受xxxxxx黑人xyx性爽 | 国产精品视频在线观看免费 | 亚洲第一成人在线观看 | 最新中文字幕日本 | 中文国产在线视频 | 一级毛片免费观看在线 | 成码无人av片在线观看网站 | 1级毛片在线观看 | 久久免费看片 | 国产精品午夜未成人免费观看 | 午夜伦情电午夜伦情电影 | 色无极影院亚洲 | 99精品视频在线观看免费播放 | 黄色片网站在线免费观看 | 成年人黄视频 | www.精品一区 | 日韩欧美激情视频 | 免费观看一级黄色片 | 天天躁狠狠躁夜躁2020挡不住 |