2017-06-02 2 views
0

Cela devrait être un problème simple, mais je ne peux pas sembler avoir le passé de la syntaxe.Décoder la clé JSON en PHP avec des caractères spéciaux

object(stdClass)#15 (12) { 
    ["im:name"]=> 
    object(stdClass)#14 (1) { 
    ["label"]=> 
    string(15) "Balls VS Blocks" 
    } 

Un simple $info->im:name->label devrait pouvoir extraire "Balls blocs VS". Cependant, puisqu'il y a un : dans la première clé, cela jette mon IDE et alors, bien sûr, il y a une erreur. Comment puis-je échapper à ce caractère spécial dans la clé?

+0

Je ne partage pas que cette question en double, comme je l'ai cherché Stack Overflow pendant un certain temps avant de poser la question. Le problème avec le doublon est qu'il n'aborde pas php ou json dans le titre. Par conséquent, en faisant des recherches, il n'est pas apparu dans la recherche. Au cas où j'aurais trouvé le duplicata, je n'aurais pas posé la question car j'étais assez certe cette question avait été posée précédemment. Donc c'est un problème de SEO plutôt que de toute autre chose ... Eh bien ... – Chad

Répondre

2

Utilisez des accolades et citez le nom.

$info->{'im:name'}->label 

Vous pouvez voir un exemple de ce in the documentation.

+1

@Chad, notez aussi que vous pouvez passer une valeur de vérité comme second argument de 'json_decode()' et vous récupérerez un tableau associatif au lieu d'un objet stdClass. Ensuite, vous pouvez référencer '$ info ['im: name']'. –

0

Vous devez utiliser des accolades, puis mettre la clé sous forme de chaîne:

echo $info->{"im:name"}->label;