using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Security.Permissions;
using System.Text;
using System.Threading.Tasks;
namespace NXWMS.Code.Serialize
{
#region JSON序列化与反序列化
///
/// JSON序列化与反序列化
///
public static class JsonSerialize
{
#region 将对象序列化为JSON格式
///
/// 将对象序列化为JSON格式
///
/// 对象
/// json字符串
public static string SerializeObject(object o)
{
string json = JsonConvert.SerializeObject(o);
return json;
}
#endregion
#region 解析JSON字符串生成对象实体
///
/// 解析JSON字符串生成对象实体
///
///
///
/// 对象实体
public static T DeserializeJsonToObject(string json)
{
JsonSerializer serializer = new JsonSerializer();
StringReader sr = new StringReader(json);
object o = serializer.Deserialize(new JsonTextReader(sr), typeof(T));
return (T)o;
}
#endregion
#region 解析JSON字符串生成对象实体
///
/// 解析JSON数组生成对象实体集合
///
///
///
/// 对象实体集合
public static List DeserializeJsonToList(string json)
{
JsonSerializer serializer = new JsonSerializer();
StringReader sr = new StringReader(json);
object o = serializer.Deserialize(new JsonTextReader(sr), typeof(List));
List list = o as List;
return list;
}
#endregion
#region 反序列化JSON到给定的匿名对象
///
/// 反序列化JSON到给定的匿名对象.
///
///
///
///
/// 匿名对象
public static T DeserializeAnonymousType(string json, T anonymousTypeObject)
{
T t = JsonConvert.DeserializeAnonymousType(json, anonymousTypeObject);
return t;
}
#endregion
#region Datable转换成Json
///
/// Datable转换成Json
///
///
///
public static string DataTableToJsonWithJsonNet(DataTable table)
{
string JsonString = string.Empty;
JsonString = JsonConvert.SerializeObject(table);
return JsonString;
}
#endregion
}
#endregion
}