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 :

Bug avec JSON avec un tableau contenant un index en string


Sujet :

JavaScript

  1. #1
    Membre confirm�

    Homme Profil pro
    D�veloppeur multim�dia
    Inscrit en
    F�vrier 2013
    Messages
    148
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur multim�dia
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : F�vrier 2013
    Messages : 148
    Par d�faut Bug avec JSON avec un tableau contenant un index en string
    Bonjour,

    Tout est dans le titre. �a fait longtemps que je fait du js, mais l� j'ai du loup� une subtilit�...

    Cela me semble logique :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     var indexTest = "1";
     
        var test = [];
        test[ indexTest ] = "VALEUR";
     
        var debug1 = test[ indexTest ];
        // Converti l'objet en chaine JSON
        var jsonString =  JSON.stringify(test);  
        // Converti la chaîne json en objet
        var test2 = JSON.parse(jsonString);
        var debug2 = test2[ indexTest ];
     
        $('#content').html('debug1='+debug1+' debug2='+debug2);
    Cela affiche :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    debug1=VALEUR debug2=VALEUR
    Pour moi parfaitement logique !

    Mais:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    var indexTest = "a";
     
        var test = [];
        test[ indexTest ] = "VALEUR";
     
        var debug1 = test[ indexTest ];
        // Converti l'objet en chaine JSON
        var jsonString =  JSON.stringify(test);  
        // Converti la chaîne json en objet
        var test2 = JSON.parse(jsonString);
        var debug2 = test2[ indexTest ];
     
        alert('debug1='+debug1+' debug2='+debug2);
    Cela affiche :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    debug1=VALEUR debug2=undefined
    Pourquoi le passage en JSON me d�truit mon objet si l'index est un string??? D�s le JSON.stringify, il est effac�.

  2. #2
    Membre confirm�

    Homme Profil pro
    D�veloppeur multim�dia
    Inscrit en
    F�vrier 2013
    Messages
    148
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur multim�dia
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : F�vrier 2013
    Messages : 148
    Par d�faut
    Bon j'ai trouv� la solution, logique

    Je passe d'un tableau d'un type liste � un tableau associatif et le probl�me est r�solu.
    Mais c'est ambigu que �a marche avec une valeur alpha num�rique dans debug1 et pas dans debug2...
    Bref

  3. #3
    Membre Expert
    Avatar de Kaamo
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Par d�faut
    Dans le premier cas, jsonString === "[null,"VALEUR"]", dans le second cas "[]"En effet, comme tu utilises un Array, tu va perdre l'information de la propri�t� a lors du stringify / parse.

    Dans debug1, "1" (string) est interpr�t� en 1 (number). Mieux vaut utiliser push pour ajouter des �l�ments � un Array

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 12
    Dernier message: 12/02/2013, 11h35
  2. [AJAX] bug json avec string contenant un &
    Par Pitrivief dans le forum AJAX
    R�ponses: 2
    Dernier message: 03/05/2012, 19h05
  3. R�ponses: 2
    Dernier message: 02/01/2012, 20h36
  4. [AJAX] Recuperer un tableau encod� avec json
    Par ambe_fr dans le forum AJAX
    R�ponses: 8
    Dernier message: 05/09/2011, 16h36

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