Files
serein-flow/Library/Utils/JsonHelper.cs
2025-07-27 23:46:26 +08:00

71 lines
1.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using Serein.Library.Api;
using System;
using System.Collections.Generic;
namespace Serein.Library.Utils
{
/// <summary>
/// Json门户类需要你提供实现
/// </summary>
public static class JsonHelper
{
/// <summary>
/// Json门户类需要你提供实现
/// </summary>
private static IJsonProvider provider;
/// <summary>
/// 使用第三方包进行解析
/// </summary>
/// <param name="jsonPortal"></param>
public static void UseJsonProvider(IJsonProvider jsonPortal)
{
JsonHelper.provider = jsonPortal;
}
public static T Deserialize<T>(string jsonText)
{
return provider.Deserialize<T>(jsonText);
}
public static object Deserialize(string jsonText, Type type)
{
return provider.Deserialize(jsonText, type);
}
public static IJsonToken Parse(string json)
{
return provider.Parse(json);
}
public static string Serialize(object obj)
{
return provider.Serialize(obj);
}
public static IJsonToken Object(Action<Dictionary<string, object>> init)
{
var dict = new Dictionary<string, object>();
init(dict);
return provider.CreateObject(dict);
}
public static IJsonToken Array(IEnumerable<object> values)
{
return provider.CreateArray(values);
}
public static IJsonToken FromObject(object obj)
{
if (obj is System.Collections.IEnumerable && !(obj is string))
return provider.CreateObject(obj as IDictionary<string, object>);
return provider.CreateArray(obj as IEnumerable<object>);
}
}
}