Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Accéder à la clé d'un objet Json

20 views
Skip to first unread message

Julien Arlandis

unread,
Mar 17, 2013, 8:00:05 PM3/17/13
to
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

unread,
Mar 19, 2013, 1:27:53 PM3/19/13
to
Bonjour,

Julien Arlandis a ᅵcrit :
> 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"));

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);

> 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

unread,
Mar 19, 2013, 2:24:14 PM3/19/13
to
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

Le 18/03/2013 01:00, Julien Arlandis a �crit :
0 new messages