[RESOLU] Tableaux d'objet dans un objet

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
skyfyx
Messages : 15
Inscription : 14 Avr 2020 01:53

[RESOLU] Tableaux d'objet dans un objet

Message par skyfyx » 22 Avr 2020 17:46

Bonjour,

Comme indiquer dans le titre je cherche à afficher les éléments de mes objets stocker dans un tableau lui même stocker dans un objet (JSON). Comme cette phrase est un peu compliquer je vais tenter d'expliquer avec un code( le problème c'est que ce code me parait logique, mais il semblerait que ne puisse pas accéder au tableau dans l'objet )

Code : Tout sélectionner

string response = www.downloadHandler.text;
// on transforme la response en objet JSON
MaClass week = JsonUtility.FromJson<MaClass>(response);

// MonJson correspond à un tableau d'objet donc pour moi il serait logique d'y accéder
// avec une clef et ensuite pointer l'élément de l'objet mais j'obtiens une erreur comme 
// quoi il n'y a pas de définition pour id (dans cet exemple)
Debug.Log(week.MonJson[0].id);

[System.Serializable]
public class MaClass{
	public string[] MonJson;
}
Mon Json :

Code : Tout sélectionner

{
	"MonJson": [
		{"id":"0", "champ_1": "exemple", "champ_2": "exemple"},
		{"id":"1", "champ_1": "exemple", "champ_2": "exemple"}
	]
}
Etant nouveau en C# je pense que j'oublie quelque chose mais je ne sais pas quoi ... car en javascript ça passe ça .. (enfin le faite d’accéder à un tableau dans un objet pour ensuite accéder de nouveau à un objet )

Je me doute qu'il faut redéfinir une Class du genre :

Code : Tout sélectionner

[System.Serializable]
public class MonObjetDansMonObjet{
	public string id;
	public string champ_1;
	public string champ_2;
}
Mais comment l'utiliser ensuite ??

Merci d'avance pour votre aide, pour vous dire il est 17h45 je cherche depuis 13h environ en faisant des centaines de tests et de recherche.
Dernière édition par skyfyx le 23 Avr 2020 15:03, édité 1 fois.

skyfyx
Messages : 15
Inscription : 14 Avr 2020 01:53

Re: Tableaux d'objet dans un objet

Message par skyfyx » 23 Avr 2020 14:53

Après un jour de recherche j'ai fini par résoudre mon problème. Je met la réponse si ça peut être utile à d'autres personnes qui un jour en auraient besoin.

il suffisait en faite de faire un struct des données, et d'utiliser une List plutôt qu'un tableau de String:

Code : Tout sélectionner

[System.Serializable]
public struct MonObjetDansMonObjet{
	public string id;
	public string champ_1;
	public string champ_2;
}

[System.Serializable]
public class MaClass{
	public List<MonObjetDansMonObjet> MonJson;
}
voilà, je sais pas si c'est très clair, mais si ça peut être utile ;)

Répondre

Revenir vers « Scripting »