using System;
using System.Collections.Generic;
using System.Data;
using System.Text.RegularExpressions;
using Newtonsoft.Json;
namespace SCC.Common
{
///
/// 转换Json格式帮助类
///
public static class JsonExtensions
{
///
/// 对象序列化成Json字符串
///
/// 需要序列化的对象
/// 是否忽略值为NULL的属性,默认false
///
public static string TryToJson(this object obj, bool isIgnoreNullValue = false)
{
string res;
try
{
if (isIgnoreNullValue)
{
JsonSerializerSettings jsetting = new JsonSerializerSettings();
JsonConvert.DefaultSettings = () =>
{
//日期类型默认格式化处理
//jsetting.DateFormatHandling = DateFormatHandling.MicrosoftDateFormat;
//jsetting.DateFormatString = "yyyy-MM-dd HH:mm:ss";
//空值处理,忽略值为NULL的属性
jsetting.NullValueHandling = NullValueHandling.Ignore;
return jsetting;
};
res = JsonConvert.SerializeObject(obj, Formatting.Indented, jsetting);
}
else
{
res = JsonConvert.SerializeObject(obj);
}
}
catch (Exception e)
{
LogHelper log = new LogHelper();
log.Warn(typeof(JsonExtensions), "对象序列化成Json字符串失败,方法:TryToJson(),异常信息:" + e.Message);
res = "";
}
return res;
}
///
/// Json字符串反序列化成对象集合
///
///
///
///
public static List JsonToList(this string json)
{
try
{
return JsonConvert.DeserializeObject>(json);
}
catch (Exception e)
{
LogHelper log = new LogHelper();
log.Warn(typeof(JsonExtensions), "Json字符串序列化成对象失败,方法:JsonToList(),异常信息:" + e.Message);
}
return default(List);
}
///
/// Json字符串反序列化成实体对象
///
///
///
///
public static T JsonToEntity(this string json)
{
try
{
return JsonConvert.DeserializeObject(json);
}
catch (Exception e)
{
LogHelper log = new LogHelper();
log.Warn(typeof(JsonExtensions), "\r\n===============================================================================\r\n");
log.Warn(typeof(JsonExtensions), "Json字符串序列化成对象失败,方法:JsonToEntity(),异常信息:" + e.Message + "\r\n");
log.Warn(typeof(JsonExtensions), json + "\r\n");
log.Warn(typeof(JsonExtensions), "\r\n===============================================================================\r\n");
}
return default(T);
}
}
}