Parse JSON ou XML
Bonjour tout le monde,
J'ai une petite question, comment dois-je procéder pour lier mon app avec un Fichier Json ou XML contenant mes éléments de recherche ?
Comment doit être constitué le fichier JSON OU XML pour faire le minimum de modification dans mon code.
J'ai trop de données à gérer entre les recherches et les quiz, une erreur est vite arrivée.
Exemple de donner a récupérer :
let techniques = [Technique(nom: "Tchaliot Seugui Kyongnye", nomPosition: "TEXTE" image: UIImage(named: "back1")),
Technique(nom: "Tchaliot Seugui Kyongnye", nomPosition: "TEXTE" image: UIImage(named: "back1")),
Technique(nom: "Tchaliot Seugui Kyongnye", nomPosition: "TEXTE" image: UIImage(named: "back1")),
Technique(nom: "Tchaliot Seugui Kyongnye", nomPosition: "TEXTE" image: UIImage(named: "back1")),
Technique(nom: "Tchaliot Seugui Kyongnye", nomPosition: "TEXTE" image: UIImage(named: "back1")),
Technique(nom: "Tchaliot Seugui Kyongnye", nomPosition: "TEXTE" image: UIImage(named: "back1")),
Technique(nom: "Tchaliot Seugui Kyongnye", nomPosition: "TEXTE" image: UIImage(named: "back1")),
Technique(nom: "Tchaliot Seugui Kyongnye", nomPosition: "TEXTE" image: UIImage(named: "back1")),
Technique(nom: "Tchaliot Seugui Kyongnye", nomPosition: "TEXTE" image: UIImage(named: "back1"))
]
Comme ceci ? (XML)
<?xml version="1.0"?>
<List>
<Technique>
<nom>texte</nom>
<nomPosition>texte</nomPosition>
<deplacement>texte</deplacement>
<armement>texte</armement>
<realisation>texte</realisation>
<definition>texte</definition>
<imageNamed>texte</imageNamed>
</Technique>
<Technique>
<nom>texte</nom>
<nomPosition>texte</nomPosition>
<deplacement>texte</deplacement>
<armement>texte</armement>
<realisation>texte</realisation>
<definition>texte</definition>
<imageNamed>texte</imageNamed>
</Technique>
<Technique>
<nom>texte</nom>
<nomPosition>texte</nomPosition>
<deplacement>texte</deplacement>
<armement>texte</armement>
<realisation>texte</realisation>
<definition>texte</definition>
<imageNamed>texte</imageNamed>
</Technique>
</List>
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Le JSON est moins volumineux et plus facile à traiter.
Pareil.
Le JSON est bien plus facile à traiter de mon point de vue.
J'avoue pas bien comprendre loool
Dans mon autre post, tu me conseilles le plist que j'avais faussement assimilé au XML.
Sur le net, je trouve plus de tuto sur le parse JSON que plist ou XML. Du coup, je pense essayer avec le JSON même si niveau structure, je le trouve moins clair que les deux autres formats.
Comme ceci ??
Merci également pour ta réponse. Pense tu également que ce soit possible pour les questions réponses d'un quiz
Plutôt comme ça ?
Ou comme Ceci ?
Alors :
Dans ton autre post, ce n'était pas clair si tu voulais que ce fichier soit uniquement dans ton bundle de départ et n'avais jamais besoin d'être mis à jour.
Tu as ensuite parlé d'une update via serveur. Quand on parle de serveur, je préconise dès lors d'utiliser du JSON, je trouve cela bien plus simple et moins lourd comparé à du XML. L'idée du plist via serveur, cela revient à retélécharger un fichier complet, et vu que c'est un XML particulier, c'est assez verbeux, d'où ma préférence pour le JSON du coup.
Ton JSON semble correct sinon.
La structure est simple pour celui qui la connait.
Un JSON, avec des termes d'Objective-C, c'est un NSDictionary ou un NSArray at top level, et ensuite, c'est uniquement des NSDictionary, NSArray, NSString ou NSNumber.
Une fois que tu sais que tu es limité à ça, je suppose que trouver ce qui est NSString et NSNumber, c'est facile. Il ne te reste plus qu'à trouver la différence entre NSArray et NSDictionary à la lecture visuelle, et vu que le NSDictionary fonctionne avec un système de clé, qui en général est un NSString, c'est assez facile.
Merci beaucoup pour ta réponse. Je recherche ça
J'ai fais un test avec ce code que j'arrive bien a récupérer.
Mais je n'arrive pas à structurer correctement pour correspondre à mon quiz.
Dans ce dernier, j'utilise 5 arrays (1 pour les questions, 1 pour les bonnes réponses et 3 pour les mauvaises réponses
Je me demande si c'est la meilleure façon de faire finalement ?
Bonsoir,
Je ne répondrai pas sur l'aspect xml, json, etc...
En revanche, sur la structuration des données : auras-tu toujours 3 mauvaises réponses ? ou veux-tu te donner de la flexibilité pour plus tard ? Dans ce cas, une possibilité est de définir les mauvaises réponses comme un Array (d'au moins une valeur) contenant toutes les mauvaises réponses. A gérer ensuite, pour traiter le nombre de réponses dans le Array.
Cordialement,
Nicolas
Bah en faite, simplement parceque c'est le moyen que j'ai trouver pour faire des question a 4 choix
Pour la réponse, tu pourrais ne mettre que l'indice.
Et puis tu pourrais aussi retirer un niveau hiérarchique.