using System; using System.Collections.Generic; using System.Data; using Newtonsoft.Json; using Newtonsoft.Json.Converters; namespace QMAPP.WinForm { 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) { MessageHelper.ShowError($"配置文件{fileName}错误,请重新配置!{Environment.NewLine}{ex.Message}"); } 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 Format = "yyyy-MM-dd HH:mm:ss"; public static string EntityToJsonSingle(T t) { var timeFormat = new IsoDateTimeConverter { DateTimeFormat = Format }; var strJson = JsonConvert.SerializeObject(t, Formatting.None, timeFormat); return strJson; } public static string EntityToJson(T t) { var list = new List { t }; var strJson = ListToJson(list); 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) { var timeFormat = new IsoDateTimeConverter { DateTimeFormat = Format }; var strJson = JsonConvert.SerializeObject(list, Formatting.None, 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; } } }