using Serein.Library.Api; using System; using System.Collections.Generic; namespace Serein.Library.Utils { /// /// Json门户类,需要你提供实现 /// public static class JsonHelper { /// /// Json门户类,需要你提供实现 /// private static IJsonProvider provider; /// /// 使用第三方包进行解析 /// /// 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文本 /// /// /// 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); } } }