Convertir la chaîne JSON en PHP Array
J'ai suivantes chaîne JSON, ce qui était un Objectif C tableau puis encodé en JSON:
$jsonString=[\"a@gmail.com\",\"b@gmail.com\",\"c@gmail.com\"]
Je veux convertir cette régulière d'un tableau PHP. J'ai essayé beaucoup de choses mais aucun d'entre eux semblent fonctionner:
$arrayOfEmails=json_decode($jsonString); //doesn't work
$arrayOfEmails=(array)json_decode($jsonString); //doesn't work
Des idées?
Edit:
Je ne suis toujours pas à la faire fonctionner.
$decodeEmails=$_POST["arrayOfEmails"];
sendResponse(200, $decodeEmails);
//the above returns exactly whats after this colon:[\"[email protected]\",\"[email protected]\",\"[email protected]\]
J'ai besoin pour ce faire: $arrayOfEmails=json_decode($decodeEmails);
Mais je pense que j'ai besoin de guillemets autour de $decodedEmails pour que cela fonctionne. Comment puis-je ajouter des guillemets autour de $decodeEmails chaîne?
il semble que vous avez pour échapper les guillemets à l'intérieur de la chaîne pour qu'elle soit valide:
C'est l'Objectif de la version C de la chaîne..il est envoyé en PHP via la POSTE
Vous devez définir "ne fonctionne pas."
J'ai édité ce moment, le PHP chaîne. Dois-je faire quelque chose pour elle en premier?
"[\"[email protected]\",\"[email protected]\",\"[email protected]\"]"
C'est l'Objectif de la version C de la chaîne..il est envoyé en PHP via la POSTE
Vous devez définir "ne fonctionne pas."
json_decode()
est la bonne méthode pour cet effet, de sorte que vous arriver lorsque vous l'utilisez?J'ai édité ce moment, le PHP chaîne. Dois-je faire quelque chose pour elle en premier?
OriginalL'auteur Snowman | 2012-02-07
Vous devez vous connecter pour publier un commentaire.
Vous devez indiquer votre chaîne, il fonctionne très bien, voir ici.
Ou
Si vous êtes déjà échapper à la
"
, alors vous pouvez utiliser"
.Pouvez-vous montrer
var_dump($_POST["arrayOfEmails"])
?var_dump donne ceci (Le tableau réel est de plus de 3, j'ai pris les extras sont partis d'ici pour que je puisse l'afficher):
string(457) "[\"[email protected]\",\"[email protected]\",\"[email protected]\"]"
C'est déjà une chaîne, vous pouvez simplement utiliser la fonction json_decode après .
OriginalL'auteur xdazz
Essayez ceci:
json_decode($json_string, true);
json_decode()
et sont uniquement de type coulée de premier niveau des éléments.Mais celle-ci retourne un tableau associatif, non? Je veux juste un régulier
PHP n'a qu'un seul type de tableau. Je pense que vous voulez dire que les clés du tableau sont pas numérique? Votre avis est ce qui doit être vérifié ou corrigée à obtenir le résultat que vous désirez.
Il n'est pas nécessaire pour le deuxième paramètre, dans ce cas donné dans la question. Le deuxième paramètre est pour la conversion de JSON objets sérialisés à l'assoc des tableaux. L'OP a un JSON sérialisé tableau indexé.
Quand je suis passé en deuxième paramètre assoc= true à la fonction json_decode() sa a fonctionné mais j'ai appelé 2 fois pour arriver à mon résultat
OriginalL'auteur the_wizard
maintenant u peut obtenir le $data array
Par exemple
$données ont de la valeur comme cela
maintenant, je reçois valeur comme cela
OriginalL'auteur kranthi kumar pulivarhty
OriginalL'auteur bortunac
Si
json_decode
ne fonctionne pas, vous pouvez essayer quelque chose comme ceci:OriginalL'auteur Will
Vous pouvez utiliser la fonction json_decode() puis print_r() pour créer un PHP formaté
OriginalL'auteur mintedsky
Ce code fonctionne très bien.
Au lieu de conversion de type, vous devez utiliser le deuxième argument de convertir un tableau:
json_decode($value, $array = TRUE)
.Oui. J'ai juste essayé de corriger son erreur. Voici mon résultat. Array ( [0] => [email protected] [1] => [email protected] [2] => [email protected] )
Il n'est pas nécessaire de transtypage, ou pour passer à la deuxième paramètre comme
true
OriginalL'auteur Prasad Rajapaksha
En supposant l'absence de guillemets autour de votre JSON dans la question, est une transposition d'erreur lors de la validation, le code que vous utilisez est fine: http://codepad.org/RWEYM42x
Vous avez besoin de vous assurer que votre chaîne est encodés en utf-8. Vous pouvez utiliser l'encodeur intégré, si elle n'est pas ( http://php.net/manual/en/function.utf8-encode.php ).
Pour toute aide supplémentaire, vous avez besoin pour réellement nous dire ce que vous sont arriver avec votre code.
OriginalL'auteur JAAulde
Cette solution est bonne, mais pour obtenir la pleine tableau valide, je suis en utilisant
strlen( $json ) - 6
, de sorte qu'il devrait être:OriginalL'auteur shojol80