using System; namespace TEngine { public static partial class Utility { /// /// JSON 相关的实用函数。 /// public static partial class Json { private static IJsonHelper _jsonHelper = new DefaultJsonHelper(); /// /// 设置 JSON 辅助器。 /// /// 要设置的 JSON 辅助器。 public static void SetJsonHelper(IJsonHelper jsonHelper) { _jsonHelper = jsonHelper; } /// /// 将对象序列化为 JSON 字符串。 /// /// 要序列化的对象。 /// 序列化后的 JSON 字符串。 public static string ToJson(object obj) { if (_jsonHelper == null) { throw new GameFrameworkException("JSON helper is invalid."); } try { return _jsonHelper.ToJson(obj); } catch (Exception exception) { if (exception is GameFrameworkException) { throw; } throw new GameFrameworkException(Text.Format("Can not convert to JSON with exception '{0}'.", exception), exception); } } /// /// 将 JSON 字符串反序列化为对象。 /// /// 对象类型。 /// 要反序列化的 JSON 字符串。 /// 反序列化后的对象。 public static T ToObject(string json) { if (_jsonHelper == null) { throw new GameFrameworkException("JSON helper is invalid."); } try { return _jsonHelper.ToObject(json); } catch (Exception exception) { if (exception is GameFrameworkException) { throw; } throw new GameFrameworkException(Text.Format("Can not convert to object with exception '{0}'.", exception), exception); } } /// /// 将 JSON 字符串反序列化为对象。 /// /// 对象类型。 /// 要反序列化的 JSON 字符串。 /// 反序列化后的对象。 public static object ToObject(Type objectType, string json) { if (_jsonHelper == null) { throw new GameFrameworkException("JSON helper is invalid."); } if (objectType == null) { throw new GameFrameworkException("Object type is invalid."); } try { return _jsonHelper.ToObject(objectType, json); } catch (Exception exception) { if (exception is GameFrameworkException) { throw; } throw new GameFrameworkException(Text.Format("Can not convert to object with exception '{0}'.", exception), exception); } } } } }