using Serein.Library.Api; using System; using System.Collections.Generic; namespace Serein.Library.Utils { /// /// Json门户类,需要你提供实现 /// public static class JsonHelper { /// /// Json门户类,需要你提供实现 /// public static IJsonProvider Provider { get; private set; } /// /// 使用第三方包进行解析 /// /// public static void UseJsonProvider(IJsonProvider jsonPortal) { JsonHelper.Provider = jsonPortal; } /// /// 反序列化Json文本为指定类型的对象 /// /// /// /// public static T Deserialize(string jsonText) { return Provider.Deserialize(jsonText); } /// /// 反序列化Json文本为指定类型的对象 /// /// /// /// public static object Deserialize(string jsonText, Type type) { return Provider.Deserialize(jsonText, type); } /// /// 解析Json文本为IJsonToken对象 /// /// /// public static IJsonToken Parse(string json) { return Provider.Parse(json); } /// /// 尝试解析Json文本为IJsonToken对象 /// /// /// /// public static bool TryParse(string json, out IJsonToken jsonToken) { return Provider.TryParse(json, out jsonToken); } /// /// 将对象序列化为Json文本 /// /// /// public static string Serialize(object obj) { return Provider.Serialize(obj); } /// /// 创建一个Json对象,使用字典初始化 /// /// /// public static IJsonToken Object(Action> init) { var dict = new Dictionary(); init(dict); return Provider.CreateObject(dict); } /// /// 创建一个Json对象,使用字典初始化 /// /// /// public static IJsonToken Array(IEnumerable values) { return Provider.CreateArray(values); } /// /// 将对象转换为JsonToken /// /// /// public static IJsonToken FromObject(object obj) { if (obj is System.Collections.IEnumerable && !(obj is string)) return Provider.CreateObject(obj as IDictionary); return Provider.CreateArray(obj as IEnumerable); } } }