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