IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windev Mobile Discussion :

Parser un fichier JSON (ou XML/TXT) [WM18]


Sujet :

Windev Mobile

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 17
    Points : 6
    Points
    6
    Par défaut Récupérer Chaine de caractères dans un fichier JSON/XML
    Bonjour,

    Je suis actuellement bloqué sur un problème, je m'explique:

    Je développe actuellement une application tablette (WinDev Mobile) pour l'entreprise dans laquelle je suis en Stage.
    Cette coopérative vend du matériel sanitaire, chauffage, carrelage ... Ces différentes activités sont mise à jour régulièrement et les intitulés de ces activités sont stockés dans une fichier JSON.
    Dans le menu principal de mon application j'ai un bouton "CATALOGUE" et la page suivante doit m'afficher des boutons avec le nom des activités en question.
    Comment puis-je parcourir mon fichier, et extraire uniquement le nom des activités ?
    Je sais que je dois l'ouvrir, le lire mais après pour extraire une chaine, qui est séparée par les caractère " },{ ", je pense que stocker ces extraits de chaine dans un tableau serait une bonne idée mais comment puis-je procéder ?

    Cordialement,

  2. #2
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 803
    Points
    3 803
    Par défaut
    Bonjour,

    Essaie de faire une recherche dans le forum avec le mot clé JSON.
    Il y a plusieurs discussions à ce sujet.
    la touche est ton amie. l'aide ne mord pas quand on la consulte...
    PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. (Un exemple vaut mieux que de longs discours...)

    Pensez à utiliser les votes et à cliquer sur , merci

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Oui je suis allé voir mais c'est la syntaxe du code que j'ai du mal à pondre .. Je suis " débutant ", et j'ai du mal sortir quelque chose de fonctionnel.

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    J'ai réussi à trouver ça mais le soucis c'est que j'ai une boucle sans fin ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    idFichier est un entier
    Contenu est une chaîne ANSI
    Ligne est une chaîne
     
     
    idFichier = fOuvre("C:\POUR MARTIN\activites.json",foLectureEcriture)
    SI idFichier <> -1 ALORS
    	Contenu = fLit(idFichier,1000000000)
    SINON
    	Info("Impossible de lire le fichier source")
    FIN
     
    id, nom est une chaîne
    i est un entier
    i =1
     
    TANTQUE  Contenu<>EOT
     
    Contenu = Remplace(Contenu,"},","}|")
    Contenu = Remplace(Contenu,"[","")
     
    Ligne = ExtraitChaîne(Contenu,i,"|")
    Ligne = Remplace(Ligne,RC,"")
    Ligne = Remplace(Ligne,"""","")
    id = ExtraitChaîne(Ligne,1,",")
    id = ExtraitChaîne(id,2,":")
    nom = ExtraitChaîne(Ligne,2,",")
    nom = ExtraitChaîne(nom,2,":")
    Info("id : "+ id + " , nom : " + nom)
     
    i=i+1
     
    FIN

  5. #5
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 803
    Points
    3 803
    Par défaut
    Logique vu que contenue n'évolue pas.
    à quoi te sert i?
    la touche est ton amie. l'aide ne mord pas quand on la consulte...
    PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. (Un exemple vaut mieux que de longs discours...)

    Pensez à utiliser les votes et à cliquer sur , merci

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    A quoi me sert quoi ?

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 17
    Points : 6
    Points
    6
    Par défaut Parser un fichier JSON (ou XML/TXT)
    Bonjour,

    Je suis actuellement sur le développement d'une appli dans la boite ou je fais mon stage. Cette coopérative propose des produits Sanitaires,Carrelage, Électroménager...
    J'ai commencé une application pour tablette qui sera proposé aux clients et qui intègrera un catalogue des produits, rangés par CATEGORIE, MARQUE, FAMILLE et SOUS FAMILLE, ces catégories sont dans un fichier JSON
    [
    {
    "id": "0",
    "nom": "DIVERS",
    "photo_1": "ACT_DIVERS.JPG",
    "photo_2": "ACT_DIVERS_2.JPG"
    },
    {
    "id": "1",
    "nom": "SANITAIRE",
    "photo_1": "ACT_SANITAIRE.JPG",
    "photo_2": "ACT_SANITAIRE_2.JPG"
    },
    {
    "id": "2",
    "nom": "CHAUFFAGE",
    "photo_1": "ACT_CHAUFFAGE.JPG",
    "photo_2": "ACT_CHAUFFAGE_2.JPG"
    },
    {
    "id": "7",
    "nom": "ELECTRICITE",
    "photo_1": "ACT_ELECTRICITE.JPG",
    "photo_2": "ACT_ELECTRICITE_2.JPG"
    },
    {
    "id": "6",
    "nom": "CARRELAGE PLATRERIE",
    "photo_1": "ACT_CARRELAGE_PLATRERIE.JPG",
    "photo_2": "ACT_CARRELAGE_PLATRERIE_2.JPG"
    },
    {
    "id": "11025",
    "nom": "ELECTRO-MENAGER",
    "photo_1": "ACT_ELECTRO-MENAGER.JPG",
    "photo_2": "ACT_ELECTRO-MENAGER_2.JPG"
    }
    ]
    J'aimerai pouvoir parcourir ce fichier, et extraire le "NOM" et le "ID" que je stockerai dans une table.. J'ai réussi à pondre ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    idFichier est un entier
    Contenu est une chaîne ANSI
    Ligne est une chaîne
     
     
    idFichier = fOuvre("C:\POUR MARTIN\activites.json",foLectureEcriture)
    SI idFichier <> -1 ALORS
    	Contenu = fLit(idFichier,1000000000)
    SINON
    	Info("Impossible de lire le fichier source")
    FIN
     
    id, nom est une chaîne
    i est un entier
    i = 1
     
    TANTQUE  Contenu<>EOT
    Contenu = Remplace(Contenu,"},","}|")
    Contenu = Remplace(Contenu,"[","")
    Ligne = ExtraitChaîne(Contenu,i,"|")
    Ligne = Remplace(Ligne,RC,"")
    Ligne = Remplace(Ligne,"""","")
    id = ExtraitChaîne(Ligne,1,",")
    id = ExtraitChaîne(id,2,":")
    nom = ExtraitChaîne(Ligne,2,",")
    nom = ExtraitChaîne(nom,2,":")
    Info("id : "+ id + " , nom : " + nom)
     
    i=i+1
    FIN
    Mais ce n'est pas du propre .. Quelqu'un aurait une idée ?

  8. #8
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 803
    Points
    3 803
    Par défaut
    C'étais à quoi te sert "i" mais en relisant ton post j'ai trouvé.

    Sinon tu fais une boucle TANTQUE Contenu<>EOT mais vu que la valeur de Contenu n'évolue pas au fur et à mesure de ta boucle, résultat tu ne sort jamais de ta boucle.

    Et ce sujet ne peux pas t'aider ?
    la touche est ton amie. l'aide ne mord pas quand on la consulte...
    PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. (Un exemple vaut mieux que de longs discours...)

    Pensez à utiliser les votes et à cliquer sur , merci

  9. #9
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Merci pour votre réponse je vais aller voir ca
    En fait j'ai récupérer un code déja existant, pour un autre fichier JSON et j'essaye de l'adapter mais c'est assez compliqué.
    Je vais aller voir votre lien

  10. #10
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    Bon j'ai réussi à adapter ma procédure à mon fichier :
    PROCEDURE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    PROCEDURE JsonTrouveChaineActivites(json,NomTabRech sont des chaînes)
     
    machaine est une chaîne
    pos, posd, posf, grandeur, gr sont des entiers
     
    NomTabRech = Caract(34) + NomTabRech + Caract(34) + ": " + Caract(34)
    gr = Taille(NomTabRech)
    pos = Position(json,NomTabRech)
     
    SI pos = 0 ALORS
    	machaine ="NONTROUVE"
    SINON
    	posd = pos + gr
    	posf = Position(json,Caract(34) + "," + Caract(34), posd)
    	grandeur = posf - posd
    	machaine = Milieu(json,posd, grandeur)
    FIN
     
    RENVOYER machaine
    Exemple de CODE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    //FICHIER ACTIVITES.JSON <------------------------------------------------------------------------
    iDFIchier = fOuvre("C:\POUR MARTIN\Niveau1\activites.json",foLecture)
    SI iDFIchier <> -1 ALORS
    	sMonJSON = fLit(iDFIchier,10000000)
    	sMonJSON = Remplace(sMonJSON,"},","}|")
    	sMonJSON = Remplace(sMonJSON,RC,"")
    SINON
    	Info("Impossible de lire le fichier source")
    FIN
     
    sLigne=ExtraitChaîne(sMonJSON,rangPremier,"}|{")
    HCréation(ACTIVITES)
    TANTQUE sLigne <> EOT
    	ID=JsonTrouveChaineActivites(sLigne,"id")
    	Lib=JsonTrouveChaineActivites(sLigne,"nom")
    		SI ID="NONTROUVE" ET Lib="NONTROUVE" ALORS
    			Info("ERREUR ! L'élément n'a pas pi être trouvé")
    		SINON
    	sLigne=ExtraitChaîne(sMonJSON,rangSuivant,"}|{")
    	Trace(ID+" "+Lib)
    	ACTIVITES.ACT_ID=ID
    	ACTIVITES.ACT_LIB=Lib
    	HAjoute(ACTIVITES)
    		FIN
    FIN	
    fFerme(iDFIchier)
    Merci de votre aide .

    Cordialement,

  11. #11
    Membre actif
    Inscrit en
    Août 2005
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 96
    Points : 205
    Points
    205
    Par défaut Parser une chaine JSON
    Le plus simple est peut être d'utiliser la fonction JSONVersVariant(sChaineJson)

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2014
    Messages : 19
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par bastiencb Voir le message
    Le plus simple est peut être d'utiliser la fonction JSONVersVariant(sChaineJson)
    JSONVersVariant, n'existe qu'à partir de la version 22 sous Windev Mobile (pour Android) !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Parser un fichier Json
    Par laurent30s dans le forum Contribuez
    Réponses: 2
    Dernier message: 14/05/2019, 14h21
  2. Parser un fichier de type xml
    Par dafpp dans le forum Langage
    Réponses: 7
    Dernier message: 07/02/2012, 14h15
  3. Parser un fichier JSON en Java
    Par zinga dans le forum Android
    Réponses: 5
    Dernier message: 09/02/2011, 17h45
  4. impossible de parser le fichier hibernate.cfg.xml
    Par paolo2002 dans le forum Wildfly/JBoss
    Réponses: 9
    Dernier message: 30/05/2007, 17h39
  5. parser des fichier .xml en perl
    Par djibril dans le forum Modules
    Réponses: 13
    Dernier message: 18/05/2004, 17h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo