51 lines
1.4 KiB
C#
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);
|
|
}
|
|
} |