Buenas tardes, llevo toda la mañana rompiendome la cabeza intentando pasar un JSON a un array mediante la clase JsonHelper, sin éxito. A ver si alguien me echa un cable a ver donde esta el fallo. Aclarar que estoy haciendo un juego en Unity (por si es Unity el que limita el codigo o algo).
El caso es que estoy intentando hacer un ranking con los jugadores y puntuaciones que tengo en una database en Firebase.
Como veis abajo con la clase WWW envió la ruta y el texto que me devuelve el www es ese json de abajo.
public void Ranking()
{
string url = "https://ejemplo.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"}}
Hasta aqui todo bien, la putada llega al a hora de usar la clase JsonHelper para pasarlo a un array. Todo el rato me devuelve NULL. No sé si es porque en la clase del User falla algo o no se. Alguien que se le ocurra algo? Grasias y mis dies.
Edit: La clase user simplemente tiene el constructor y las dos variables para el name y el score, nada más.
Meto la clase JsonHelper también
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;
}
}