| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- 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
- {
- /// <summary>
- /// 将指定的对象序列化为JSON字符串。
- /// </summary>
- /// <param name="obj"></param>
- /// <returns></returns>
- 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;
- }
- /// <summary>
- /// 字符串序列化成对象
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="json"></param>
- /// <returns></returns>
- public static T Deserialize<T>(string json)
- {
- var obj = JsonConvert.DeserializeObject<T>(json);
- return obj;
- }
- public static T DeserializeWithTypeName<T>(string json)
- {
- Console.WriteLine(json);
- var obj = JsonConvert.DeserializeObject<T>(json, new JsonSerializerSettings
- {
- TypeNameHandling = TypeNameHandling.Auto
- });
- return obj;
- }
- public static T DeserializeFloatAsDecimal<T>(string json)
- {
- var obj = JsonConvert.DeserializeObject<T>(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);
- //}
- /// <summary>
- /// 解析成JObject对象 Oliver add 2021-06-18
- /// </summary>
- /// <param name="json"></param>
- /// <returns></returns>
- 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<string, List<string>> ParseResultArray(string restString)
- {
- var dict = new Dictionary<string, List<string>>();
- try
- {
- var jobj = JObject.Parse(restString);
- var arr = jobj.GetValue("result").ToString().Split(';');
- foreach (var lv in arr)
- {
- var files = new List<string>();
- 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; }
- }
- }
- }
|