using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Serialization;
using System;
using System.Collections.Generic;
using System.Text.Json;
namespace New_College.Common.Helper
{
public class JsonHelper
{
///
/// Json 序列化配置
///
public static readonly JsonSerializerSettings JsonSerializerSettings = new JsonSerializerSettings
{
Converters = new List()
{
new IsoDateTimeConverter{ DateTimeFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ss" }
},
NullValueHandling = NullValueHandling.Include,
ContractResolver = new CamelCasePropertyNamesContractResolver(),
ReferenceLoopHandling = ReferenceLoopHandling.Serialize,
PreserveReferencesHandling = PreserveReferencesHandling.None,
};
///
/// 转换对象为json格式字符串
///
///
/// 加载设置
///
public static string ToJson(object obj, bool loadSetting = true)
{
return loadSetting
// 设置参数为Formatting.Indented可输出格式化后的json
? JsonConvert.SerializeObject(obj, Formatting.None, JsonSerializerSettings)
: JsonConvert.SerializeObject(obj, Formatting.None);
}
///
/// 转换json格式字符串为指定类型对象
///
///
///
///
public static T ParseJson(string json)
{
try
{
return JsonConvert.DeserializeObject(json);
}
catch (Exception ex)
{
return default(T);
}
}
///
/// 转换对象为JSON格式数据
///
/// 类
/// 对象
/// 字符格式的JSON数据
public static string GetJSON(object obj)
{
string result = String.Empty;
try
{
System.Runtime.Serialization.Json.DataContractJsonSerializer serializer =
new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(T));
using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
{
serializer.WriteObject(ms, obj);
result = System.Text.Encoding.UTF8.GetString(ms.ToArray());
}
}
catch (Exception ex)
{
throw ex;
}
return result;
}
///
/// 转换List的数据为JSON格式
///
/// 类
/// 列表值
/// JSON格式数据
public string JSON(List vals)
{
System.Text.StringBuilder st = new System.Text.StringBuilder();
try
{
System.Runtime.Serialization.Json.DataContractJsonSerializer s = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(T));
foreach (T city in vals)
{
using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
{
s.WriteObject(ms, city);
st.Append(System.Text.Encoding.UTF8.GetString(ms.ToArray()));
}
}
}
catch (Exception ex)
{
throw ex;
}
return st.ToString();
}
///
/// JSON格式字符转换为T类型的对象
///
///
///
///
public static T ParseFormByJson(string jsonStr)
{
T obj = Activator.CreateInstance();
using (System.IO.MemoryStream ms =
new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(jsonStr)))
{
System.Runtime.Serialization.Json.DataContractJsonSerializer serializer =
new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(T));
return (T)serializer.ReadObject(ms);
}
}
public string JSON1(List vals)
{
System.Text.StringBuilder st = new System.Text.StringBuilder();
try
{
System.Runtime.Serialization.Json.DataContractJsonSerializer s = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(SendData));
foreach (SendData city in vals)
{
using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
{
s.WriteObject(ms, city);
st.Append(System.Text.Encoding.UTF8.GetString(ms.ToArray()));
}
}
}
catch (Exception ex)
{
throw ex;
}
return st.ToString();
}
}
}