using ChangKeTec.Utils; using Newtonsoft.Json; using Newtonsoft.Json.Converters; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; namespace WebService { public class JsonHelper { public static T ReadConfigFromFile(string fileName) where T : new() { var t = new T(); var strData = FileHelper.ReadFile(fileName); try { t = JsonConvert.DeserializeObject(strData); } catch (Exception ex) { } return t; } public static void WriteConfigToFile(string fileName, T t) where T : new() { var strData = JsonConvert.SerializeObject(t, Formatting.Indented); // MessageHelper.ShowInfo(strConfig); FileHelper.WriteFile(fileName, strData); } private const string TimeFormat = "yyyy-MM-dd HH:mm:ss"; public static string EntityToJsonSingle(T t, bool formatting = false) { var format = formatting ? Formatting.Indented : Formatting.None; var timeFormat = new IsoDateTimeConverter { DateTimeFormat = TimeFormat }; var strJson = JsonConvert.SerializeObject(t, format, timeFormat); return strJson; } public static string EntityToJson(T t, bool formatting = false) { var list = new List { t }; var strJson = ListToJson(list,formatting); return strJson; } public static T JsonToEntity(string strJson) { T t; try { var list = JsonToList(strJson); t = list[0]; } catch { t = JsonConvert.DeserializeObject(strJson); } return t; } public static string ListToJson(List list,bool formatting = false) { var format = formatting ? Newtonsoft.Json.Formatting.Indented : Formatting.None; var timeFormat = new IsoDateTimeConverter { DateTimeFormat = TimeFormat }; var strJson = JsonConvert.SerializeObject(list, format, timeFormat); return strJson; } public static List JsonToList(string strJson) { var list = JsonConvert.DeserializeObject>(strJson); return list; } public static string DataSetToJson(DataSet ds) { var strJson = ""; strJson = JsonConvert.SerializeObject(ds, Formatting.Indented); return strJson; } public static DataSet JsonToDataSet(string strJson) { var ds = new DataSet(); ds = JsonConvert.DeserializeObject(strJson); return ds; } } }