J'ai un grand ensemble de données hiérarchiques dans le magasin de données App Engine. La hiérarchie est conservée en stockant les données dans les groupes d'entités, afin que je puisse tirer un arbre tout en sachant simplement la clé de l'élément haut comme ceci:Sortie de données hiérarchiques à partir de la banque de données App Engine vers JSON?
query = db.Query().ancestor(db.get(key))
La question: Comment puis-je maintenant la sortie de ces données comme JSON et préserver la hiérarchie?
Google a une classe d'utilitaires appelée GqlEncoder qui ajoute le support des résultats de la requête de banque de données à simplejson, mais il aplatit les données, ce qui détruit la hiérarchie.
Des suggestions?
C'est un problème de 'parent' et de permettre cela en tant que hiérarchie. Je pourrais modifier la bibliothèque existante, mais j'ai pensé que je verrais d'abord ici s'il y avait une bibliothèque qui la supportait déjà. – Christian
@ Christian, bonne réflexion, mais je ne connais pas. Je suggère d'extraire cette utilisation 'list (obj)' dans une méthode séparée afin que la classe de base puisse avoir des fonctionnalités inchangées et qu'une sous-classe puisse surcharger la méthode et effectuer le traitement supplémentaire dont vous avez besoin (je suppose que vous voulez une liste de listes imbriquée ?) tout en réutilisant 99% des fonctionnalités de la classe de base - un tel correctif pourrait être accepté dans les parties open source du moteur d'application, et vous n'auriez pas besoin de le maintenir vous-même à l'avenir. –