using Newtonsoft.Json.Linq; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace OTSAlgrithm.Serialization { public class JsonHelper { /// /// 将指定的对象序列化为JSON字符串。 /// /// /// public static string Serialize(object obj) { string json = JsonConvert.SerializeObject(obj); return json; } public static string SerializeWithTypeName(object obj) { string json = JsonConvert.SerializeObject(obj, Formatting.Indented, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All }); return json; } /// /// 字符串序列化成对象 /// /// /// /// public static T Deserialize(string json) { var obj = JsonConvert.DeserializeObject(json); return obj; } public static T DeserializeWithTypeName(string json) { Console.WriteLine(json); var obj = JsonConvert.DeserializeObject(json, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Auto }); return obj; } public static T DeserializeFloatAsDecimal(string json) { var obj = JsonConvert.DeserializeObject(json, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Auto, FloatParseHandling = FloatParseHandling.Decimal }); return obj; } //public static string Format(string json) //{ // dynamic parsedJson = JsonConvert.DeserializeObject(json); // return JsonConvert.SerializeObject(parsedJson, Formatting.Indented); //} /// /// 解析成JObject对象 Oliver add 2021-06-18 /// /// /// public static bool ContainItem(string json, string itemName) { var obj = JObject.Parse(json); return obj[itemName] != null; } public static string ParseResultString(string restString) { try { return JObject.Parse(restString).GetValue("result").ToString(); } catch { return ""; } } public static Dictionary> ParseResultArray(string restString) { var dict = new Dictionary>(); try { var jobj = JObject.Parse(restString); var arr = jobj.GetValue("result").ToString().Split(';'); foreach (var lv in arr) { var files = new List(); var jarr = JArray.Parse(jobj.GetValue(lv).ToString()).ToArray(); foreach (var f in jarr) { files.Add(f.ToString()); } dict.Add(lv, files); } return dict; } catch { return dict; } } } }