using Furion.FriendlyException;
|
using Newtonsoft.Json;
|
using System.Runtime.Serialization.Json;
|
using System.Text;
|
|
namespace iWare.Wms.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;
|
}
|
}
|
}
|