46 lines
1.2 KiB
C#
46 lines
1.2 KiB
C#
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Serialization;
|
|
|
|
namespace Admin.NET.Core.Ai.Utils;
|
|
|
|
/// <summary>
|
|
/// LLM JSON 工具类
|
|
/// </summary>
|
|
public class LLMJsonTools
|
|
{
|
|
/// <summary>
|
|
/// 序列化对象
|
|
/// </summary>
|
|
/// <param name="obj">对象</param>
|
|
/// <returns>JSON字符串</returns>
|
|
public static string SerializeObject(object obj)
|
|
{
|
|
var settings = new JsonSerializerSettings
|
|
{
|
|
ContractResolver = new DefaultContractResolver
|
|
{
|
|
NamingStrategy = new SnakeCaseNamingStrategy()
|
|
}
|
|
};
|
|
return JsonConvert.SerializeObject(obj, settings);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 反序列化JSON字符串
|
|
/// </summary>
|
|
/// <typeparam name="T">对象类型</typeparam>
|
|
/// <param name="json">JSON字符串</param>
|
|
/// <returns>对象</returns>
|
|
public static T DeserializeObject<T>(string json)
|
|
{
|
|
var settings = new JsonSerializerSettings
|
|
{
|
|
ContractResolver = new DefaultContractResolver
|
|
{
|
|
NamingStrategy = new SnakeCaseNamingStrategy()
|
|
}
|
|
};
|
|
return JsonConvert.DeserializeObject<T>(json, settings);
|
|
}
|
|
}
|