using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.IO; using System.Text; namespace HStation.RevitDev.RevitRelationMap.Utils { public static class JsonHelper { /// /// 使用Newtonsoft.Json.JsonConvert把对象转为json字符串 /// /// /// /// public static string ToJson(T obj) { Newtonsoft.Json.Converters.IsoDateTimeConverter dtConverter = new Newtonsoft.Json.Converters.IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" }; return JsonConvert.SerializeObject(obj, Formatting.Indented, dtConverter); } /// /// 使用Newtonsoft.Json.JsonConvert把对象转为json字符串 /// /// /// /// public static string ToJson(T obj, Formatting format) { Newtonsoft.Json.Converters.IsoDateTimeConverter dtConverter = new Newtonsoft.Json.Converters.IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" }; return JsonConvert.SerializeObject(obj, format, dtConverter); } /// /// 使用Newtonsoft.Json.JsonConvert把json字符串转为对象 /// /// /// /// public static T ToObject(string content) { return JsonConvert.DeserializeObject(content); } /// /// 使用Newtonsoft.Json.JsonConvert把json字符串转为dynamic对象 /// /// /// public static dynamic ToDynamic(string content) { return JsonConvert.DeserializeObject(content); } /// /// 使用Newtonsoft.Json.Linq把json字符串转为JObject对象 /// /// /// public static JObject ToJObject(string content) { return JObject.Parse(content); } /// /// 读取json文件 /// /// /// public static string ReadJson(string path) { if (!System.IO.File.Exists(path)) { return string.Empty; } string jsonText = string.Empty; using (StreamReader sr = new StreamReader(path, Encoding.UTF8)) { string line; while ((line = sr.ReadLine()) != null) { jsonText = jsonText + line.ToString(); } } return jsonText; } public static string ReadJsonFile(string path) { if (!System.IO.File.Exists(path)) { return string.Empty; } string jsonText = string.Empty; using (StreamReader sr = new StreamReader(path, Encoding.UTF8)) { jsonText = sr.ReadToEnd(); } return jsonText; } /// /// 写json文件 /// /// /// public static void WriteJson(string path, string content) { System.IO.File.WriteAllText(path, content); } } }