Добрый день, я провел все утро, ломая голову, пытаясь передать JSON в массив, используя класс JsonHelper, но безуспешно. Давайте посмотрим, если кто-то бросает кабель, чтобы увидеть, где происходит сбой. Уточните, что я делаю игру в Unity (в случае, если Unity ограничивает код или что-то в этом роде).
Дело в том, что я пытаюсь составить рейтинг с игроками и счетами, которые у меня есть в базе данных в Firebase.
Как вы можете видеть ниже, класс WWW отправил маршрут, а текст, который возвращает www, - это json ниже.
public void Ranking ()
{
string url = "https://example.firebaseio.com/.json";
WWW www = new WWW (url);
StartCoroutine (WaitForRequest (www));
}
IEnumerator WaitForRequest (WWW www)
{
yield return www;
// check for errors
if (www.error == null)
{
User[] users;
users = JsonHelper.FromJson <User> (www.text);
Debug.Log ("WWW Ok !:" + www.text);
}
else
{
Debug.Log ("WWW Error:" + www.error);
}
}
И это возвращаемая строка
{"Eduardito": {"playerName": "Eduardito", "playerScore": "4"}, "Joel": {"playerName": "Joel", "playerScore": "4"}, "Karla": { "playerName": "Karla", "playerScore": "5"}, "Miguelin": {"playerName": "Miguelin", "playerScore": "4"}}
Пока все хорошо, беспорядок прибывает во время использования класса JsonHelper для передачи его в массив. Все время возвращается null
. Я не знаю, если это потому, что в классе пользователя что-то не так или нет. Кто-нибудь, кто может что-то придумать? Thanksss! Извините за мой плохой английский
Редактировать: пользовательский класс просто имеет конструктор и две переменные для имени и оценки, ничего более.
Я помещаю класс JsonHelper в
public static class JsonHelper
{
public static User[] FromJson<User>(string json)
{
Wrapper<User> wrapper = JsonUtility.FromJson<Wrapper<User>>(json);
Debug.Log(wrapper.Items);
return wrapper.Items;
}
public static string ToJson<User> (User[] array)
{
Wrapper<User> wrapper = new Wrapper<User> ();
wrapper.Items = array;
return JsonUtility.ToJson(wrapper);
}
public static string ToJson <User>(User[] array, bool prettyPrint)
{
Wrapper <User> wrapper = new Wrapper<User>();
wrapper.Items = array;
return JsonUtility.ToJson(wrapper, prettyPrint);
}
internal static string ArrayToJsonString<T>(User[] res, bool v)
{
throw new NotImplementedException();
}
[Serializable]
private class Wrapper<User>
{
public User[] Items;
}
}