Closed RaphaelFOURQUET closed 11 years ago
Pour le moment j'affiche le résultat en console , je n'ai pas abordé les pbs d'écriture dans un fichier, Par contre je n'arrive pas à récuperer le texte à l'intérieur d'une balise (ce que je fais avec getText()), je fouille la Javadoc pour trouver mieux( getchildtext..). edit : solution trouvée
On peut voir les premiers résultats en executant juste le Test.java(dans package traducteur Json), le code est encore moche et pas testé mais on voit déjà ce qu'il donne en traduisant une question (TrueFalse.xml à TrueFalse.json). Il y a surement des cas auxquels je n'ai pas pensé et je ne suis même pas sur que ce soit du Json correct pour le moment, il faudra le retravailler et le commenter .. etc.
Résumé des problèmes restants à traiter dans le ToJson : +présence de texte à l'intérieur du contenu des balises non traité (la méthode getText() me recupere en plus du texte les \t et \n ce qui complique le traitement car je récupere tous les \n contenus dans une balise englobante, sans aucune idée de leur position réelle) +Créer les listes [] quand plusieurs balises identiques, actuellement ma hashmap supprime les doublons. +Gestion des retours ligne et tabulations. @NawalOuldamer ou quelqu'un d'autre : Pour gérer ces retour chariots, serait il possible que tu fasses une classe qui parcourt un document qui ne contient qu'une seule ligne et l'indempte (i.e rajoute un retour ligne après chaque { ou [ ou ] ou } + le nombre correct de tabulations incrémenté après chaque { ou [ et décrémenté après chaque } ou ]. Concretement cela devrait indempter correctement mon fichier de test appelé TrueFalse.json (rempli en éxécutant ma classe ToJson).
@RaphaelFOURQUET : oui je m'occupe de cette classe, donc toi tu créer un document brute sans aucune retour chariot ou tabulation et moi j'insert les lignes et les tab ? c'est bien cela ?
Exactement tu peux déjà avoir une idée de ce à quoi ressemble mon fichier brut (TrueFalse.json). Pour le moment il ne gère pas les Array [] mais c'est en cours.
OK
@RaphaelFOURQUET : mais à l'écriture de JSon , la classe Sauvegarde insert correctement avec les tabulation et tout donc pourquoi Indempter un fichier ?
Gestion des Array [] réussi, Il reste quelques soucis dans certains cas (//CARE dans mon code) notamment ; +Array [] crée seulement si les balises identiques sont les premiers fils de la balise englobante +Une balise ne peut contenir du texte ET une sous balise ou un attribut (dans ce cas texte ignoré) +Faire des tests plus poussés pour voir si l'on rencontre ces cas (et JUnit) +Javadoc
@NawalOuldamer Le souçis est que moi lorsque je remplis le fichier Json, j'ignore les \t et \n présents car je ne peux pas déterminer leurs positions exactes, je crée donc un fichier json sur une seule ligne, il faut donc le réindempter après.
Don quand tu écris tu n'utilises pas la classe JsonGEn ??
Non, déjà expliqué le soucis en #28 Pour utiliser directement JsonGen il me faudrait partir de la balise la plus en profondeur dans l'arbre ce qui m'est impossible, j'utilise donc des maps et je construis le JSon au dernier moment.
Donc JsonGen difficile à utiliser tel quel car les imbrications de balises sont impossible à prévoir, il vaut mieux je pense garder ce que j'ai fait et ré-indempter le document, cela me parait bcp plus simple.
Oublié de lier mon dernier commit à cette issue(ça peut encore se faire?) mais j'ai corrigé quelques bugs, reste à traiter : +Creation d Array [] ssi les fils identiques se suivent. +Une balise ne peut contenir du texte ET (une sous balise ou un attribut) (dans ce cas texte ignoré) +Faire des tests plus poussés pour voir si l'on rencontre ces cas (et JUnit)
explication point un :
si on a, a un niveau une balise < question > alors toutes les autres balises
@NawalOuldamer Tu penses pouvoir terminer la classe d'indemptation aujourd'hui? elle m'aiderait bcp pour les tests.
@NawalOuldamer je me suis documenté pour une indent auto plutot que le refaire à la main sur net.sf.json et ca donne des résultats corrects plus besoin de faire l indemptation manuelle.
Hormis les bugs possibles non découverts, partie terminée.
Coder la classe qui permet à partir du parser XML de traduire une question en JSON.