using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SA
{
public static class JsonHelper
{
#region Method
///
/// 类对像转换成json格式
///
///
public static string ToJson(this object t)
{
var ser = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Include, };
ser.Converters.Add(new IsoDateTimeConverter() { DateTimeFormat = "yyyy-MM-dd hh:mm:ss" });
return JsonConvert.SerializeObject(t, Formatting.Indented, ser);
}
///
/// 类转化为json
///
///
///
///
public static string ToJson(this T t)
{
var ser = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Include, };
ser.Converters.Add(new IsoDateTimeConverter() { DateTimeFormat = "yyyy-MM-dd hh:mm:ss" });
return JsonConvert.SerializeObject(t, Formatting.Indented, ser);
}
///
/// 类对像转换成json格式
///
///
/// 是否忽略NULL值
///
public static string ToJson(this object t, bool HasNullIgnore)
{
if (HasNullIgnore)
{
var ser = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
ser.Converters.Add(new IsoDateTimeConverter() { DateTimeFormat = "yyyy-MM-dd hh:mm:ss" });
return JsonConvert.SerializeObject(t, Formatting.Indented, ser);
}
else
return ToJson(t);
}
///
/// json格式转换
///
///
///
///
public static T FromJson(string strJson) where T : class
{
if (!string.IsNullOrEmpty(strJson))
return JsonConvert.DeserializeObject(strJson);
return null;
}
///
/// json格式转换成List
///
///
///
///
public static List FromJsonList(string strJson) where T : class
{
if (!string.IsNullOrEmpty(strJson))
return JsonConvert.DeserializeObject>(strJson);
return null;
}
///
/// 字符串转成匿名对象
///
///
///
public static JObject Parse(string strJson)
{
if (string.IsNullOrEmpty(strJson))
return null;
JObject o = JObject.Parse(strJson);
return o;
}
#endregion Method
///
/// json字符串转化成json数组
///
///
///
public static JArray ParsestrToJArray(string strJson)
{
if (string.IsNullOrEmpty(strJson))
return new JArray();
JArray array = (JArray)JsonConvert.DeserializeObject(strJson);
return array;
}
//public static object ToJson(this string Json)
//{
// return Json == null ? null : JsonConvert.DeserializeObject(Json);
//}
public static string ToJson(this object obj, string datetimeformats)
{
var timeConverter = new IsoDateTimeConverter { DateTimeFormat = datetimeformats };
return JsonConvert.SerializeObject(obj, timeConverter);
}
public static T ToObject(this string Json)
{
return Json == null ? default(T) : JsonConvert.DeserializeObject(Json);
}
public static List ToList(this string Json)
{
return Json == null ? null : JsonConvert.DeserializeObject>(Json);
}
public static DataTable ToTable(this string Json)
{
return Json == null ? null : JsonConvert.DeserializeObject(Json);
}
public static JObject ToJObject(this string Json)
{
return Json == null ? JObject.Parse("{}") : JObject.Parse(Json.Replace(" ", ""));
}
}
}