Json_encode : objet ou tableau... - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : Json_encode : objet ou tableau... (/showthread.php?tid=1431) |
Json_encode : objet ou tableau... - Holy - 13-01-2011 Bonjour, J'étais en train de réviser quelques scripts php (appelés via AJAX) et je me trouve confronté à un petit soucis ^^ Json_encode() fait un traitement différent selon que les clés du tableau commencent à 0 ou à 15. Lorsque les clés commencent à 0, la fonction vire la clé dans la chaine de sortie et me propose un tableau. Logique en somme, ça permet de gagner encore quelques octets si les clés numériques se suivent. Sauf que... si mes clés commencent à 8 disons, il me sort un objet. Exemple : Code : $a = array( Je sais qu'en PHP 5.3 y a moyen de forcer l'encodage pour qu'il sorte de l'objet dans les deux cas (si j'ai bien compris la doc), mais mon serveur ne tourne pas encore sous cette version-là. Merci pour votre aide, Holy Edit : Je vais essayer de passer sous PHP 5.3 histoire de voir ce que ça donne. RE: Json_encode : objet ou tableau... - Sephi-Chan - 13-01-2011 C'est tout à fait normal. Comme tu ne commence pas au début (à 0), l'index est donné explicitement. C'est un comportement des tableaux, pas de l'encodage JSON. Sephi-Chan RE: Json_encode : objet ou tableau... - atra27 - 13-01-2011 Hum, comment tu fait pour avoir des tableaux qui ne commencent pas a 0? on peut se dire que le probléme viens de la? J'avais entendu parler de: $array = array_values($array); Pour réindexer un tableau... Mais je sais pas trop si sa concerne a ton cas... RE: Json_encode : objet ou tableau... - Sephi-Chan - 13-01-2011 Ben pour créer un tableau qui commence à 8, tu fais :
Et effectivement, array_values va de fait réindexer le tableau puisqu'il ne récupère que les valeurs pour créer un tableau avec. Sephi-Chan RE: Json_encode : objet ou tableau... - Holy - 13-01-2011 (13-01-2011, 10:11 PM)Sephi-Chan a écrit : C'est tout à fait normal. Comme tu ne commence pas au début (à 0), l'index est donné explicitement.Je vois ^^ En fait, je viens de me rendre compte que j'avais un bug dans mon code javascript et que c'est pour ça qu'il prenait pas bien mon objet json. Je vais corriger ça. Ah, mais j'ai une dernière question en fait : comment je fais pour parcourir ces deux objets JSon et récupérer les clés correctement ? ^^ Merci Au temps pour moi, j'ai honte... mais c'est bien mon code javascript qui ne fonctionnait pas. Je vérifiais la longueur de l'objet json en utilisant .length et visiblement ça ne marche pas quand ça n'est pas un tableau ^^ J'ai tout compris et me confonds en excuse xD Un bête for(var key in object) fonctionne parfaitement ^^ |