using System;
using Newtonsoft.Json;
///
/// 提供操作 JSON 数据的辅助方法。
///
public static class JsonHelper
{
///
/// 将对象序列化为 JSON 字符串。
///
/// 要序列化的对象类型。
/// 要序列化的对象。
/// 表示序列化对象的 JSON 字符串。
public static string ToJson(this T t)
{
return JsonConvert.SerializeObject(t);
}
///
/// 反序列化 JSON 字符串为指定类型的对象。
///
/// 要反序列化的 JSON 字符串。
/// 目标对象的类型。
/// 是否使用反射进行反序列化(默认为 true)。
/// 反序列化后的对象。
public static object Deserialize(this string json, Type type, bool reflection = true)
{
return JsonConvert.DeserializeObject(json, type);
}
///
/// 反序列化 JSON 字符串为指定类型的对象。
///
/// 目标对象的类型。
/// 要反序列化的 JSON 字符串。
/// 反序列化后的对象。
public static T Deserialize(this string json)
{
return JsonConvert.DeserializeObject(json);
}
///
/// 克隆对象,通过将对象序列化为 JSON,然后再进行反序列化。
///
/// 要克隆的对象类型。
/// 要克隆的对象。
/// 克隆后的对象。
public static T Clone(T t)
{
return t.ToJson().Deserialize();
}
}