Use Newtonsoft. Json to implement Json serialization and deserialization, and newtonsoft deserialization
Newtonsoft. Json is used in the project to implement serialization and deserialization. Write the implementation code here.
1. Create a class to exclude attributes not serialized
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. serialization Method
The following methods serialize objects, able, and collections into Json strings:
/// <Summary> // T object to be converted into a json string // </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> // convert the DataTable object to a json string /// </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> // convert the List object to js On string /// </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 JsonSeria LizerSettings (); 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. deserialization
The following describes how to deserialize A Json string into an object and a set.
/// <Summary> // convert the json string to a T object // </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> // converts a json string to a List object // </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