Discussion:
Accéder à la clé d'un objet Json
(trop ancien pour répondre)
unknown
2013-03-18 00:00:05 UTC
Permalink
Bonsoir,

PHP récupère la chaine de caractères suivante :
{"POST":{"article":{"from":"juju","subject":"PHP","newsgroups":"fr.test","body":"test"}}}

J'écris :
$json = json_decode(file_get_contents("php://input"));

Et mon soucis c'est de récupérer la première clef de mon objet $json,
ici "POST".

Voici la structure de mon objet json :

stdClass Object
(
[POST] => stdClass Object
(
[article] => stdClass Object
(
[from] => juju
[subject] => PHP
[newsgroups] => fr.test
[body] => test
)

)

)

Pour l'instant je m'en sors de la façon suivante (pas très élégante) :

foreach ($json as $cle=>$valeur)
{
$commande = $cle;
break;
}


Une solution plus simple?
Stéphane Santon
2013-03-19 17:27:53 UTC
Permalink
Bonjour,
Post by unknown
{"POST":{"article":{"from":"juju","subject":"PHP","newsgroups":"fr.test","body":"test"}}}
$json = json_decode(file_get_contents("php://input"));
Il faut décoder le JSON avec un résultat sous forme de tableau
associatif, donc paramètre 'assoc' à true.
http://php.net/manual/fr/function.json-decode.php

$json = json_decode(file_get_contents("php://input"), true);
Post by unknown
Et mon soucis c'est de récupérer la première clef de mon objet $json, ici
"POST".
Alors
$cles = array_keys( $json);
$commande = $cles[0];
--
Stéphane

Jeune Chambre Economique de Saintes *** http://www.jce-saintes.org
Agitateurs d'idées... accélérateurs de talents !

BTS Electrotechnique *** http://enselec.santonum.eu
Clément
2013-03-19 18:24:14 UTC
Permalink
Bonsoir,

Tout d'abord, sans le 2e argument de json_decode, vous n'aurez pas de
tableau associatif mais un objet...

Il faut plutôt faire
$json = json_decode(file_get_contents("php://input"), true);

Ensuite, pour avoir la 1ère clef d'un tableau, il y a plusieurs
solutions, je miserais sur
reset($json);
$commande = key($json);

Cordialement
Post by unknown
Bonsoir,
{"POST":{"article":{"from":"juju","subject":"PHP","newsgroups":"fr.test","body":"test"}}}
$json = json_decode(file_get_contents("php://input"));
Et mon soucis c'est de récupérer la première clef de mon objet $json,
ici "POST".
stdClass Object
(
[POST] => stdClass Object
(
[article] => stdClass Object
(
[from] => juju
[subject] => PHP
[newsgroups] => fr.test
[body] => test
)
)
)
foreach ($json as $cle=>$valeur)
{
$commande = $cle;
break;
}
Une solution plus simple?
Continuer la lecture sur narkive:
Loading...