2 votes

Chaîne Json vers un tableau js

J'ai un ensemble de résultats que j'ai converti en Json en utilisant la fonction php json_encode. Maintenant, je veux que ce résultat soit un tableau en js mais je n'ai pas d'idée pour le faire.

Mon tableau PHP est le suivant :

Array
(
    [latestRating] => Array
        (
            [456] => Anonymous has rated xxx9
            [457] => Anonymous has rated xxxx8
            [458] => Anonymous has rated xxxx3.5
        )

    [latestUser] => Array
        (
            [242] => xxxxhas just signed up
            [243] => xxxxxhas just signed up
            [244] => xxxxxxhas just signed up
        )

)

Lorsque j'utilise la fonction php json_encode, j'obtiens la chaîne suivante

{"latestRating":{"456":"Anonymous has rated mermaidbl00d 9","457":"Anonymous has rated GeorgiaHallx 8","458":"Anonymous has rated smithjhon 3.5","459":"Anonymous has rated Emilyxo 8.5","460":"Anonymous has rated leona 10","461":"Anonymous has rated leona 10","462":"Anonymous has rated W0rthlessliar 8","463":"Anonymous has rated Yousamsuck 9","464":"Anonymous has rated Aimeeerobbb 9","465":"Anonymous has rated lauramillerx 10","466":"Anonymous has rated tomwaz 1","467":"Anonymous has rated W0rthlessliar 1","468":"Anonymous has rated W0rthlessliar 1","469":"Anonymous has rated W0rthlessliar 1","470":"Anonymous has rated W0rthlessliar 1"},"latestUser":{"242":"rhiwilliamsx has just signed up","243":"W0rthlessliar has just signed up","244":"rebeccaronan has just signed up"}}

J'ai essayé d'utiliser JSON.stringify, puis jQuery.makeArray pour créer un tableau à partir de la chaîne. J'ai ensuite essayé eval('['+string+']') mais rien n'a fonctionné.

Je suis un débutant en Json et je n'ai pas pu trouver de soutien approprié.

Salutations Himanshu Sharma.

3voto

Rob W Points 125904

Utilisez JSON.parse() au lieu de JSON.stringify .
Le poing est l'équivalent en JavaScript du poing en PHP. json_decode ce qui équivaut à json_encode .

Remarque : Si vous utilisez jQuery.ajax con dataType: 'json' alors le paramètre dans le callback est déjà un objet décodé.

Dans votre code, le "tableau" PHP n'est pas un tableau JavaScript, mais un objet.

2voto

AlienWebguy Points 42370

Il devrait déjà être prêt à partir si vous utilisez json_encode() sinon, utilisez JSON.parse() . Vous pouvez également vérifier les en-têtes PHP lorsque vous faites écho des données à inclure :

header('Content-type: application/json');

Si ça vient d'une réponse ajax, il suffit de référencer l'objet comme ça :

success : function(data) {
    console.log(data.latestRating);
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X