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

JavaScript Discussion :

Parcourir un objet JSON


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de Cvanhove
    Homme Profil pro
    Concepteur Développeur Informatique
    Inscrit en
    Septembre 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Concepteur Développeur Informatique

    Informations forums :
    Inscription : Septembre 2014
    Messages : 174
    Points : 70
    Points
    70
    Par défaut Parcourir un objet JSON
    Bonjour,

    J'ai importer un JSON dans un objet, et j'aimerais maintenant pouvoir le parcourir pour en afficher l'ensemble du contenu, mais je ne sais pas comment procéder
    Est-ce qu'il y à une méthode pour afficher simplement le contenu de mon objet où il faut faire des boucles pour parcourir l'ensemble?

    Cordialement
    Cordialement, le volatile!
    "Crôa, Crôa"

  2. #2
    Membre régulier Avatar de Cvanhove
    Homme Profil pro
    Concepteur Développeur Informatique
    Inscrit en
    Septembre 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Concepteur Développeur Informatique

    Informations forums :
    Inscription : Septembre 2014
    Messages : 174
    Points : 70
    Points
    70
    Par défaut
    En fait mon JSON est sous cette forme :

    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
    34
    35
    36
    37
    38
    39
    40
    41
     
    { "catalogue" : [
    {
    	"databases" : [
    	{
    		"Name":"truc",
    		"Label":"bidule,
    		"Schemas":[
    		{
    			"Name":"machin",
    			"Tables":[
    				{
    					"Name":"truc",
    					"Type":1
    				}
    			]
    		}
    		]
    	}
    	]
    },{
    	"databases" : [
    	{
    		"Name":"truc",
    		"Label":"bidule,
    		"Schemas":[
    		{
    			"Name":"machin",
    			"Tables":[
    				{
    					"Name":"truc",
    					"Type":1
    				}
    			]
    		}
    		]
    	}
    	]
    }
    ]
    }
    J'aimerais par exemple trouver comment faire pour afficher le Name de toutes mes Table, ou le Type par exemple. Pour en afficher 1 seul je sais comment faire, mais pour tous les afficher je ne trouve pas
    Cordialement, le volatile!
    "Crôa, Crôa"

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2015
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2015
    Messages : 107
    Points : 139
    Points
    139
    Par défaut
    Salut,

    Première chose, attention à ton JSON, il y a des erreurs (manque de guillemets "Label":"bidule,<--).

    Pour parcourir ton json, regarde du côté de la boucle for, tu dois pouvoir trouver ton bonheur.
    Darkauron

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Attention au format du JSON, il manquait un " sur "bidule".

    Les Arrays rendent la structure de l'objet JS complexe.

    Code javascript : 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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    var dataset = {
      "catalogue" : [
        {
          "databases" : [
            {
              "Name" : "truc",
              "Label" : "bidule",
              "Schemas" : [
                {
                  "Name" : "machin",
                  "Tables" : [
                    {
                      "Name" : "truc",
                      "Type" : 1
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "databases" : [
            {
              "Name" : "truc",
              "Label" : "bidule",
              "Schemas" : [
                {
                  "Name" : "machin",
                  "Tables" : [
                    {
                      "Name" : "truc",
                      "Type" : 1
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    };
    
    dataset.catalogue.forEach( function( item, i ){
      var Obj = item.databases[0];
      
      console.log( "Obj.Name = ", Obj.Name );
      console.log( "Obj.Schemas[0].Tables[0].Type = ", Obj.Schemas[0].Tables[0].Type );
    });
    
    /*
    Obj.Name =  truc
    Obj.Schemas[0].Tables[0].Type =  1
    Obj.Name =  truc
    Obj.Schemas[0].Tables[0].Type =  1
    */

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre régulier Avatar de Cvanhove
    Homme Profil pro
    Concepteur Développeur Informatique
    Inscrit en
    Septembre 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Concepteur Développeur Informatique

    Informations forums :
    Inscription : Septembre 2014
    Messages : 174
    Points : 70
    Points
    70
    Par défaut
    Oui, les oublies de guillemet sont pas fait exprès c'est quand j'ai remplacé le contenu pour vous ^^ (Je vais pas écrire le contenu de certaine données sur internet)

    La dessus mon vrai JSON est bon, aucun soucis!

    Du coup j'ai tester un truc (pour eviter de faire 36000 for ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Array.prototype.collect = function(fName){
    		return [].concat.apply([], this.map(function(o) {return eval("o." + fName);}));
    	}
     
    	var truc = test
    		.catalogue
    		.collect("databases")
    		.collect("Schemas")
    		.collect("Tables")
    		.collect("name")
    	document.getElementById("demo").innerHTML = truc;
    seulement là il me retourne que des virgules XD (,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)

    Mais pas d'erreur.
    Je sais que ma fonction marche, je l'ai tester sur un petit jeu d'essai mais la j'essaye de l'adapter à mon gros JSON, j'ai encore qq soucie.

    Cordialement

    Edit : J'ai réussi, ça fonctionne, l'erreur venait que name etait avec un N majuscule dans mon JSON... par contre ça me met tout a la suite sans sauter de ligne et placer un br n'a pas l'air de fonctionner (ou peut etre je le place mal...)
    Cordialement, le volatile!
    "Crôa, Crôa"

  6. #6
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2015
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2015
    Messages : 107
    Points : 139
    Points
    139
    Par défaut
    Ta fonction (collect) te retourne un tableau d'élément, c'est pour ça que tous les résultats sont sur la même ligne.

    Avec le jeu de données "test", je récupère ["truc", "truc"].

    Si tu les veux sur plusieurs lignes, il faut traiter chaque élément récupéré.
    Darkauron

  7. #7
    Membre régulier Avatar de Cvanhove
    Homme Profil pro
    Concepteur Développeur Informatique
    Inscrit en
    Septembre 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Concepteur Développeur Informatique

    Informations forums :
    Inscription : Septembre 2014
    Messages : 174
    Points : 70
    Points
    70
    Par défaut
    Ok, du coup je vais essayer de charger ma collection dans une datalist.

    Quand je fais :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <input type=text list=database >
    <datalist id=databases >
    	<option value=truc[1]></option>
    </datalist>

    ça fonctionne pas, je dois passer par qq chose pour recup et exploiter ma collection "truc"?
    Cordialement, le volatile!
    "Crôa, Crôa"

  8. #8
    Membre régulier Avatar de Cvanhove
    Homme Profil pro
    Concepteur Développeur Informatique
    Inscrit en
    Septembre 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Concepteur Développeur Informatique

    Informations forums :
    Inscription : Septembre 2014
    Messages : 174
    Points : 70
    Points
    70
    Par défaut
    C'est bon, ENFIN!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var options = '';
    for(var i = 0; i < truc.length; i++)
       			options += '<option value="'+truc[i]+'" />';
     
      		document.getElementById('databases').innerHTML = options;
    Merci
    Cordialement, le volatile!
    "Crôa, Crôa"

  9. #9
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2015
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2015
    Messages : 107
    Points : 139
    Points
    139
    Par défaut
    Il va être compliqué de t'aider si tu ne fais pas attention au code que tu nous donnes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <input type="text" list="databases" >
    <datalist id="databases" >
    	<option value=truc[1]></option>
    </datalist>
    Au "mieux", avec ce que tu nous donnes, je ferais quelque choses du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for (let t of truc) {
    document.getElementById("databases").innerHTML = "<option value='"+t+"></option>";
    }
    Je n'ai pas tester la solution du dessus, mais j'ai du mal à voir le fonctionnement attendu.

    Avec le code ci-dessus, tu vas remplir ta datalist avec les différentes valeurs récupérés par ta fonction. A voir si cela correspond à ton besoin.

    EDIT : ta solution semble correcte aussi.
    Darkauron

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

Discussions similaires

  1. Parcourir un objet
    Par ragnarokr dans le forum C#
    Réponses: 17
    Dernier message: 01/06/2014, 17h42
  2. comment parcourir un objet json?
    Par aminaoussaleh dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 08/12/2009, 16h08
  3. [POO] parcourir un objet json avec une boucle for in
    Par bucheron007 dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 19/01/2009, 12h55
  4. [POO] Restaurer un objet JSon en javascript
    Par GandalfZeGrey dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 21/01/2008, 15h14
  5. [POO] lecture objet json
    Par taouja dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/12/2007, 11h32

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