GOOGLE ADS

vendredi 22 avril 2022

Unity JSONUtility vers la liste JSON des classes de base

J'ai un BaseClasstas de classes dérivées.

J'ai aussi List<BaseClass>qui contient des objets de ces classes dérivées.

Lorsque je le fais, JSONUtility.ToJson(List<BaseClass>)je n'obtiens que les propriétés des BaseClassclasses dérivées et non celles-ci.

Et bien... Je suppose que c'est logique, mais ne puis-je pas le forcer à utiliser une classe dérivée s'il y en a une ou si elle JSONUtilityn'en est pas capable? J'ai donc besoin d'écrire une logique personnalisée pour cela?

Merci!


Solution du problème

Obtient très probablement JSONUtility.ToJson(List<BaseClass>)les éléments dont vous avez besoin avec réflexion, de sorte que l'objet renvoyé est basé sur le type entrant. J'essaierais d'obtenir les jsons un par un et de les combiner dans la logique, en pré-castant chacun des types. Non testé ni débogué, juste une idée de point de départ pour passer à autre chose :

string jsons;
foreach (var baseClass in baseClassList) {
Type specificType = baseClass.GetType();
string jsonString = JsonUtility.ToJson((specificType)baseClass)
jsons = "[" + string.Join(",", jsonstring) + "]";
}

Aucun commentaire:

Enregistrer un commentaire

Comment utiliseriez-vous .reduce() sur des arguments au lieu d'un tableau ou d'un objet spécifique&nbsp;?

Je veux définir une fonction.flatten qui aplatit plusieurs éléments en un seul tableau. Je sais que ce qui suit n'est pas possible, mais...