123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- //------------------------------------------------------------
- // 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
- {
- /// <summary>
- /// JSON 相关的实用函数。
- /// </summary>
- public static partial class Json
- {
- private static IJsonHelper s_JsonHelper = null;
- /// <summary>
- /// 设置 JSON 辅助器。
- /// </summary>
- /// <param name="jsonHelper">要设置的 JSON 辅助器。</param>
- public static void SetJsonHelper(IJsonHelper jsonHelper)
- {
- s_JsonHelper = jsonHelper;
- }
- /// <summary>
- /// 将对象序列化为 JSON 字符串。
- /// </summary>
- /// <param name="obj">要序列化的对象。</param>
- /// <returns>序列化后的 JSON 字符串。</returns>
- 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);
- }
- }
- /// <summary>
- /// 将 JSON 字符串反序列化为对象。
- /// </summary>
- /// <typeparam name="T">对象类型。</typeparam>
- /// <param name="json">要反序列化的 JSON 字符串。</param>
- /// <returns>反序列化后的对象。</returns>
- public static T ToObject<T>(string json)
- {
- if (s_JsonHelper == null)
- {
- throw new GameFrameworkException("JSON helper is invalid.");
- }
- try
- {
- return s_JsonHelper.ToObject<T>(json);
- }
- catch (Exception exception)
- {
- if (exception is GameFrameworkException)
- {
- throw;
- }
- throw new GameFrameworkException(Text.Format("Can not convert to object with exception '{0}'.", exception), exception);
- }
- }
- /// <summary>
- /// 将 JSON 字符串反序列化为对象。
- /// </summary>
- /// <param name="objectType">对象类型。</param>
- /// <param name="json">要反序列化的 JSON 字符串。</param>
- /// <returns>反序列化后的对象。</returns>
- 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);
- }
- }
- }
- }
- }
|