12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- using Furion.FriendlyException;
- using Newtonsoft.Json;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Runtime.Serialization.Json;
- using System.Text;
- namespace YBEE.EQM.Core
- {
- /// <summary>
- /// Json工具类
- /// </summary>
- public static class JsonUtil
- {
- /// <summary>
- /// Object转Josn
- /// </summary>
- /// <param name="obj"></param>
- /// <returns></returns>
- public static string ToJson(this object obj)
- {
- if (obj == null)
- {
- return null;
- }
- return JsonConvert.SerializeObject(obj);
- }
- /// <summary>
- /// Json转Object
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="str"></param>
- /// <returns></returns>
- public static T FromJson<T>(this string str)
- {
- try
- {
- return JsonConvert.DeserializeObject<T>(str);
- }
- catch (Exception ex)
- {
- throw Oops.Oh(ex.Message);
- // return default(T);
- }
- }
- /// <summary>
- /// 获取Json的Model
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="szJson"></param>
- /// <returns></returns>
- public static T ParseFromJson<T>(string szJson)
- {
- if (typeof(T) == typeof(IEnumerable<>))
- {
- }
- T obj = Activator.CreateInstance<T>();
- using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szJson)))
- {
- DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
- return (T)serializer.ReadObject(ms);
- }
- }
- /// <summary>
- /// string字典
- /// </summary>
- /// <typeparam name="TKey"></typeparam>
- /// <typeparam name="TValue"></typeparam>
- /// <param name="jsonStr"></param>
- /// <returns></returns>
- public static Dictionary<TKey, TValue> DeserializeStringToDictionary<TKey, TValue>(string jsonStr)
- {
- if (string.IsNullOrEmpty(jsonStr))
- return new Dictionary<TKey, TValue>();
- Dictionary<TKey, TValue> jsonDict = JsonConvert.DeserializeObject<Dictionary<TKey, TValue>>(jsonStr);
- return jsonDict;
- }
- }
- }
|