Partage
  • Partager sur Facebook
  • Partager sur Twitter

Encoder un tableau javascript en JSON

Rien ne fonctionne :(

Sujet résolu
Anonyme
    9 août 2010 à 18:19:14

    Bien le bonjour à tous,

    J'ai actuellement un tableau javascript de plusieurs dimensions ressemblant à quelque chose comme ça :

    var tableau = new Array();
    var tableau['donnees'] = new Array();
    var tableau['donnees'][] = new Array();
    var tableau['id'] = 23;
    var tableau['nom'] = 'lol';
    


    Le soucis, j'ai beau tester tous les codes que je croise sur internet, la chaîne JSON résultat de ce genre de tableau est toujours dans ce type là :

    ,,,,,,


    Comme si le tableau était vide... Alors que je m'en sers pour des traitements côté client qui fonctionnent parfaitement.

    Donc si vous connaissez un code qui réussirait à encoder ce genre de tableau à plusieurs dimensions en JSOn correctement ça m'aiderait bien.

    Merci d'avance :)

    EDIT : Ou si vous savez comment envoyer le tableau non encodé avec Jquery, je suis preneur aussi :)
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      9 août 2010 à 19:16:24

      ça c'est pas un tableau, c'est une horreur.

      var objet = {
        'données' : [ [] ],
        'id' : 23,
        'nom' : 'lol'
      };
      


      et là le code sérialisé sera bon. T'as pas de tableaux associatifs en javascript t'as des tableaux (0,n, .push(), .length et tout) et des objets, c'est tout.
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        9 août 2010 à 23:50:12

        Tu n'aimes peut-être pas (moi non plus d'ailleurs, je comptais tout repasser en indexage simple une fois ce problème réglé), mais c'est tout à fait légal en javascript de faire un tableau associatif d'après les différentes documentations que j'ai pu croiser (à moins que les cours / documentations soient fausses). En tout cas ce tableau, bien qu'il soit laid, fonctionne très bien, d'ailleurs j'ai également trouvé une fonction qui parvient à le parser (en faisant sauter au passage toutes mes clés associatives, ce qui me simplifie la vie côté php ^^).

        Merci de ton avis en tout cas :)
        • Partager sur Facebook
        • Partager sur Twitter
          10 août 2010 à 0:01:56

          Non non et non. Un tableau n'est pas fait pour faire de l'associatif. De la doc de merde tu peux en trouvé partout. Mais si tu lis la spec ECMA, un tableau contient des éléments INDEXE et non avec des noms associatifs.

          Pour de l'associatif tu dois utiliser new Object(); ou {} comme nod_ l'a fait.
          Si tu utilises new Object au lieu de new Array, le syntaxe après est identique !

          machin['chose'] = true;
          machin.chose = false;

          Et là ta transformation en JSON marchera.
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            10 août 2010 à 0:33:56

            Ok, je me baserai donc sur cette spécification pour la suite (elle a l'air pas mal complète en plus, ça change). Enfin côté implémentation, Javascript doit bien prendre en compte les tableaux associatifs, sinon ça ne fonctionnerait pas (ce n'est rien de plus qu'une table de hachage après tout, ce serait étonnant qu'un langage, même aussi laid, ne prenne pas ça en compte dans son implémentation).

            Enfin, toujours est-il que je vais en revenir à mes bon vieux index de base de toute façon (ça fait des lignes moins longues, plus reposant).
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              10 août 2010 à 8:58:56

              Ton « tableau associatif » marche parce que tout est objet en JS et que les objets sont dynamiques. new Array() étant un objet tu peux y rajouter n'importe quel propriété. En JS tableau associatif = objet.

              En ce qui concerne la doc, heureusement que la spec est complète, sinon ça serait encore plus le carnage.

              Molo sur les jugements de valeur sur le forum tu est un peu dans la situation de ce chat http://ibouh.free.fr/data/%5e%5e/fearnoevil.jpg :p
              • Partager sur Facebook
              • Partager sur Twitter

              Encoder un tableau javascript en JSON

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown