Я пытаюсь создать систему рекордов с использованием Firebase для проекта Unity. Для получения JSON я использую RESTCLIENT. Мне удалось загрузить результаты отлично, но их десериализация оказывается проблемой.
JSON = "{"UserName1":{"Name":"UN1","ScoreVal":"99/100"},"UserName2":{"Name":"UN2","ScoreVal":"100/100"}}"
[Serializable]
public class RootObject
{
public Score score { get; set; }
}
[Serializable]
public class Score
{
public string Name;
public string ScoreVal;
public Score(string name, string scoreVal)
{
this.Name = name;
this.ScoreVal = scoreVal;
}
}
Идеальным решением будет следующий формат JSON:
{
"Level1":{
"User1":{
"Name":"User1",
"Score":"100/100"
},
"User2":{
"Name":"User2",
"Score":"100/100"
}
},
"Level2": {
"User1": {
"Name":"User1",
"ScoreVal":"99/100"
},
"User2": {
"Name":"User2",
"ScoreVal":"100/100"
}
}
}
Я пытался использовать JsonUtility от unity, newtonsoft и моего собственного jsonhelper:
public static class JsonHelper2
{
public static T[] FromJson<T>(string json)
{
Wrapper<T> wrapper = JsonUtility.FromJson<Wrapper<T>>(json);
return wrapper.Items;
}
public static string ToJson<T>(T[] array)
{
Wrapper<T> wrapper = new Wrapper<T>();
wrapper.Items = array;
return JsonUtility.ToJson(wrapper);
}
public static string ToJson<T>(T[] array, bool prettyPrint)
{
Wrapper<T> wrapper = new Wrapper<T>();
wrapper.Items = array;
return JsonUtility.ToJson(wrapper, prettyPrint);
}
[Serializable]
private class Wrapper<T>
{
public T[] Items;
}
}
Я могу получить данные, когда есть только одна запись, но я не могу получить оценки, когда есть несколько имен пользователей.