Partage
  • Partager sur Facebook
  • Partager sur Twitter

exploiter du json comme un array

Sujet résolu
    9 juillet 2010 à 17:19:35

    Bonjour,

    Je suis débutant et je voudrais pouvoir exploiter du json comme un array normal, est-ce possible de le transtyper en array par exemple, ou existe t-il des boucles spéciales pour le json ?

    Dans mon cas en fait, il s'agit d'ajax, je demande à récupérer une liste d'amis et mon script php retourne le json sous cette forme :
    [
            { "pseudo":"Boris", "enligne":"oui", "id":"50" },
            { "pseudo":"Pascal", "enligne":"non", "id":"82" },
            { "pseudo":"DuFion", "enligne":"non", "id":"85" }
    ]


    Ensuite je voudrais créer ma liste d'amis dans une boucle, comme ceci :
    var monarray = new Array();
    	
    monarray[0] = new Array('Boris', 'oui', '50');
    monarray[1] = new Array('Pascal', 'non', '82');
    monarray[2] = new Array('DuFion', 'non', '85');
    	
    var listeami = '<ul>\n';
    var longueur = monarray.length
    	
    for (var i = 0; i < longueur; i++)
    {
        var enligne = (monarray[i][1] == "oui")?"en ligne":"hors ligne";
        listeami += '<li><a href="./profile?=' + monarray[i][2] + '">' + monarray[i][0] + '</a> (' + enligne + ')</li>\n';
    }
    listeami += '</ul>';
    

    Je voudrais pouvoir arriver au même résultat avec du json ou en transtypan le json en array. Pouvez-vous m'y aider s'il vous plait ?
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      9 juillet 2010 à 17:31:51

      bah coté php retourne un array numérique et pas associatif et ça fera un array en js aussi.

      sinon les objets c'est cool
      var data = /* ton json_encode() */;
      for (var i = 0, il = data.length; i < il; i++) {
        listeami += '<li><a href="./profile?=' + data[i].id + '">' + data[i].pseudo + '</a> (' + data[i].enligne + ')</li>\n';
        // ou meme si t'es un déglingo 
        // listeami += '<li><a href="./profile?=' + data[i]['id'] + '">' + data[i]['pseudo'] + '</a> (' + data[i]['enligne'] + ')</li>\n';
      }
      


      stou
      • Partager sur Facebook
      • Partager sur Twitter
        9 juillet 2010 à 17:36:39

        Ah d'accord, je ne savais pas que c'était possible de retourner un array... d'après le tuto sur l'ajax on ne peut retourner que soit du xhtml, soit du json, soit du xml. x_x

        Donc merci nod, je vais essayer !


        edit : bon en fait j'ai beau chercher je ne vois pas comment faire. :euh:
        redit : j'ai lu qu'il faut utiliser eval pour transformer le json en array, mais comment l'utiliser ? Si je fait simplement var lejson = eval('mon json'); je ne peut pas l'exploiter comme un array, si j'utilise alert() pour voir ce que la variable contient j'ai : [object Object],[object Object],[object Object].


        reredit : C'est bon.
        • Partager sur Facebook
        • Partager sur Twitter

        exploiter du json comme un array

        × 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