using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Serialization;
using YLErp.Commons;
using YLErp.Helpers;
namespace System
{
///
/// JSON序列化/反序列化帮助类(使用json.net)
///
public static class JsonHelper
{
///
/// 将JSON字符串反序列化为对象,如果json字符串为null或空字符串,返回default(T)
///
public static T ToObject(string json)
{
return string.IsNullOrWhiteSpace(json) ? default : JsonConvert.DeserializeObject(json, settings[(int)SerializeSetting.all]);
}
///
/// 将JSON字符串反序列化为对象,如果json字符串为null或空字符串,返回default(T)
///
public static T Parse(string json)
{
return string.IsNullOrWhiteSpace(json) ? default : JsonConvert.DeserializeObject(json, settings[(int)SerializeSetting.all]);
}
///
/// 将JSON字符串反序列化为对象,如果json字符串为null或空字符串,返回default(T)
///
public static T Deserialize(string json)
{
return string.IsNullOrWhiteSpace(json) ? default : JsonConvert.DeserializeObject(json, settings[(int)SerializeSetting.all]);
}
public static T DeserializeIgnoreNull(string json)
{
var settings = new JsonSerializerSettings
{
Error = (obj, args2) =>
{
args2.ErrorContext.Handled = true;
}
};
return string.IsNullOrWhiteSpace(json) ? default : JsonConvert.DeserializeObject(json, settings);
}
//---------------------------------------------------------------------------------
///
/// 将对象序列化为JSON格式,如果对象为null,返回string.empty
///
public static string ToJson(this object obj, bool ignoreNullValue = true, bool camelCase = false)
{
if (obj == null)
{
return string.Empty;
}
if (obj is Collections.Specialized.NameValueCollection nv)
{
obj = nv.AllKeys.ToDictionary(k => k, k => nv[k]);
}
else if (obj is IEnumerable