using UnityEngine; using System.Collections.Generic; public interface ISerializeOption { public string ContentTypeHeader { get; } string ContentType { get; } T ParseResponse(string text); } public class JsonSerializationOption : ISerializeOption { public string ContentTypeHeader => "Content-Type"; public string ContentType => "application/json; charset=utf-8"; /// /// This method finishes request process as we have received answer from server. /// /// Data received from server in JSON format. /// Data Model Type. public T ParseResponse(string jsonText) { try { T parsedData = JsonUtility.FromJson(jsonText); return parsedData; } catch (System.Exception ex) { Debug.LogWarning($"Could not parse json {jsonText}. {ex.Message}"); return default; } } public static Dictionary ParseJsonToDictionary(string jsonText) { return JsonUtility.FromJson>(jsonText); } public static string ParseDictionaryToJson(Dictionary dict) { return JsonUtility.ToJson( dict ); } public static string SerializeObject(T obj) { return JsonUtility.ToJson((T)obj); } }