//------------------------------------------------------------ // Game Framework // Copyright © 2013-2021 loyalsoft. All rights reserved. // Homepage: http://www.game7000.com/ // Feedback: http://www.game7000.com/ //------------------------------------------------------------ using System; namespace GameFramework { public static partial class Utility { /// /// JSON 相关的实用函数。 /// public static partial class Json { private static IJsonHelper s_JsonHelper = null; /// /// 设置 JSON 辅助器。 /// /// 要设置的 JSON 辅助器。 public static void SetJsonHelper(IJsonHelper jsonHelper) { s_JsonHelper = jsonHelper; } /// /// 将对象序列化为 JSON 字符串。 /// /// 要序列化的对象。 /// 序列化后的 JSON 字符串。 public static string ToJson(object obj) { if (s_JsonHelper == null) { throw new GameFrameworkException("JSON helper is invalid."); } try { return s_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 (s_JsonHelper == null) { throw new GameFrameworkException("JSON helper is invalid."); } try { return s_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 (s_JsonHelper == null) { throw new GameFrameworkException("JSON helper is invalid."); } if (objectType == null) { throw new GameFrameworkException("Object type is invalid."); } try { return s_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); } } } } }