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 :

JSON : J'h�site entre deux fa�ons de programmer


Sujet :

JavaScript

  1. #1
    Membre averti
    Homme Profil pro
    Assistant data manager
    Inscrit en
    F�vrier 2015
    Messages
    24
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Assistant data manager

    Informations forums :
    Inscription : F�vrier 2015
    Messages : 24
    Par d�faut JSON : J'h�site entre deux fa�ons de programmer
    Bonjour,

    D�sol� pour le titre pas tr�s explicite. Je suis confront� � une petite probl�matique, j'ai deux fa�ons pour la r�soudre, mais je cherche la plus propre des deux (ou une autre m�thode si vous avez une meilleure id�e^^).

    J'ai besoin pour mon programme d'afficher par ordre alphab�tiques une liste de groupes identifi�s par un param�tre group_id. Dans un premier temps, je r�cup�re donc (via sql) mon objet JSON qui va se pr�senter comme ceci (pour simplifier) :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    {
    '2': { name: 'Bulbizarre'},
    '8': { name: 'Salamèche'},
    '9': { name: 'Carapuce'}
    }
    Ou alors, si je trie au niveau de la requ�te et j'obtiens un tableau :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    [
     { group_id: 2, name: 'Bulbizarre'},
     { group_id: 9, name: 'Carapuce'},
     { group_id: 8, name: 'Salamèche'},
    ]
    Cette deuxi�me forme est pratique � l'affichage, tout se met dans le bon ordre. Probl�me : je dois acc�der � l'identifiant du groupe pour faire des op�rations dessus (consulter les membres, supprimer le groupe...). Je suis oblig� d'identifier mes groupes par leur index tableau (Bulbizarre serait le 0, Salam�che le 2), pour retrouver le group_id apr�s, ce qui rajoute une couche. Ca fonctionne, mais ce n'est pas satisfaisant.

    L'autre possibilit� que je vois : "d�doubler" ma variable pour avoir un objet JSON tri� par group_id, et un tableau, r�serv� pour l'affichage, qui serait tri� par ordre alphab�tique. Mais d�doubler une variable me para�t assez moche comme solution.

    Si vous avez des suggestions, je vous en serais tr�s reconnaissant !

    Merci bien.

  2. #2
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par d�faut
    Bonjour,

    Personnellement, j'ai toujours pr�f�r� la 2e �criture.
    Elle est plus lisible et plus facile � utiliser. En plus, en javascript, certaines fonctions ne sont disponibles que pour des Array de fa�on native. Comme par exemple array.length qui n'existe pas pour un objet
    Il est donc aussi plus facile de parcourir un tableau qu'un objet.
    D'ailleurs, dans la plupart des langages on a pas le choix : seul un array peut contenir un ensemble de "choses" (habituellement un array d'objets)

    Pour ce qui est de parcourir un tableau, il faudrait voir la taille de celui-ci et peut-�tre faire des tests...
    Personnellement, je ne me suis jamais vraiment tracass� car parcourir un tableau � la recherche d'un �l�ment c'est pas hyper compliqu�
    A contrario, si le tableau contient beaucoup d'�l�ments, faire un tableau de correspondance (index <=> id) �a peut consommer beaucoup de m�moire pour rien

  3. #3
    Membre averti
    Homme Profil pro
    Assistant data manager
    Inscrit en
    F�vrier 2015
    Messages
    24
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Assistant data manager

    Informations forums :
    Inscription : F�vrier 2015
    Messages : 24
    Par d�faut
    Merci pour ta r�ponse Darkstar!

    Effectivement, peu de groupes sont attendus, un index peut �tre un plus et rapidement se programmer ^^

  4. #4
    Mod�rateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par d�faut
    Bonjour,
    je dirais que cela peut d�pendre des donn�es � manipuler et des relations qu'elles ont entre elles, un mixte des deux est envisageable et bien s�r de la fa�on dont tu vas les structurer apr�s lecture de ta base.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    const TBL_JOUEURS = {
      "A001": {         /* id unique */
        "nom": "Puddin",
        "prenom": "Holmes"
      },
      "A002": {
        "nom": "Alleway",
        "prenom": "Alvan"
      },
      "A003": {
        "nom": "Strutley",
        "prenom": "Leia"
      }
    }
    avec par exemple des �quipes
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    const TBL_EQUIPE = {
      "theBest": ["A001", "A003"],
      "theVeryBest": ["A002", "A004"],
    }
    Les m�thodes de manipulations des Object existent m�me si pas toujours intuitives
    • Object.keys(obj)
    • Object.values(obj)
    • Object.entries(obj)
    • ...


    Ne pas n�gliger non plus ta facilit� � manipuler une structure ou une autre.

  5. #5
    Expert confirm� Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activit� : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par d�faut
    Pour poursuivre ta r�flexion, je te conseille de t'int�resser aux Map et aux WeakMap introduites depuis ECMAScript 6.

Discussions similaires

  1. R�ponses: 1
    Dernier message: 13/05/2020, 09h08
  2. R�ponses: 7
    Dernier message: 08/01/2020, 07h05
  3. Communication entre deux langages de programmation diff�rents.
    Par Filadelphila dans le forum Protocoles
    R�ponses: 11
    Dernier message: 14/11/2019, 17h01
  4. Choix entre deux fa�ons de stocker, laquelle est la plus propre ?
    Par Runther dans le forum D�cisions SGBD
    R�ponses: 7
    Dernier message: 18/07/2018, 11h35
  5. R�ponses: 7
    Dernier message: 22/10/2010, 22h57

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