Files
2026-02-23 18:37:31 +01:00

51 lines
1.4 KiB
C#

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