using Newtonsoft.Json;
using System;
using System.IO;
using System.Runtime.Serialization.Json;
using System.Text;
/************************************************
作者: LowKeyTranscend
说明: 通用管理里面的JSON的序列化和反序列化
版本号:V1.0
创建日期:2017年6月22日 星期四
*****************************************************/
namespace RapidDevelopmentFramework.Common
{
/// <summary>
/// JSON辅助类
/// </summary>
public static class JSONHelper
{
/// <summary>
/// JSON 序列化的普通版本
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="_Object"></param>
/// <returns></returns>
public static String ObjectToJSON<T>(this T _Object) where T :class
{
return JsonConvert.SerializeObject(_Object);
}
/// <summary>
/// JSON 序列化的标准版本
/// </summary>
/// <param name="_Object"></param>
/// <returns></returns>
public static String ObjectToJSON(this Object _Object)
{
return JsonConvert.SerializeObject(_Object);
}
/// <summary>
/// JSON 序列化的官方版本
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="_Object"></param>
/// <returns></returns>
public static String ObjectToJSONOfficial<T>(this T _Object) where T :class
{
using (var TempMemoryStream = new MemoryStream())
{
var MyDataContractJsonSerializer = new DataContractJsonSerializer(typeof(T));
MyDataContractJsonSerializer.WriteObject(TempMemoryStream, _Object);
var MySerializationString = Encoding.UTF8.GetString(TempMemoryStream.ToArray());
return MySerializationString;
}
}
/// <summary>
///JSON 序列化的Jil 版本
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="_Object"></param>
/// <returns></returns>
public static String ObjectToJSONJil<T>(this T _Object) where T :class
{
return Jil.JSON.Serialize(_Object, Jil.Options.ExcludeNullsIncludeInherited);
}
/// <summary>
/// JSON 序列化的Jil版本 可以包含null
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="_Object"></param>
/// <returns></returns>
public static String ObjectToJSONJilIncludeNulls<T>(this T _Object) where T:class
{
return Jil.JSON.Serialize(_Object, Jil.Options.IncludeInherited);
}
/// <summary>
/// JSON 的反序列化
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="_JSONString"></param>
/// <returns></returns>
public static T JSONToObjectJSON<T>(this String _JSONString) where T:class
{
return JsonConvert.DeserializeObject<T>(_JSONString);
}
/// <summary>
/// JSON的反序列化的官方版本
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="_JSONString"></param>
/// <returns></returns>
public static T JSONToObjectOfficial<T>(this String _JSONString) where T :class
{
using (var TempMemoryStream = new MemoryStream(Encoding.UTF8.GetBytes(_JSONString)))
{
var MyDataContractJsonSerializer = new DataContractJsonSerializer(typeof(T));
return (T)MyDataContractJsonSerializer.ReadObject(TempMemoryStream);
}
}
/// <summary>
/// JSON 的反序列化的官方版本
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="_JSONString"></param>
/// <returns></returns>
public static T JSONToObjectJil<T>(this String _JSONString) where T :class
{
using (var InputString = new StringReader(_JSONString))
{
var ObjectResult = Jil.JSON.Deserialize<T>(InputString);
return ObjectResult;
}
}
/// <summary>
/// JSON 的反序列化的Jil 版本 其中可以包含null
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="_JSONString"></param>
/// <returns></returns>
public static T JSONToObjectJilIncludeNulls<T>(this String _JSONString) where T :class
{
using (var InputString = new StringReader(_JSONString))
{
var ObjectResult = Jil.JSON.Deserialize<T>(InputString, Jil.Options.IncludeInherited);
return ObjectResult;
}
}
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有