2011-01-11 6 views
10

Ho qualche oggetto JSON che ho decodificato, e uno degli attributi inizia con un "@" e non riesco ad accedere all'elemento con php perché genera un erroreCome accedere a un membro di un stdClass in PHP che inizia con un @

    [offers] => stdClass Object 
        (
         [@attributes] => stdClass Object 
          (
           [id] => levaka0B8a 
          ) 
        ) 

Come potrei fare per l'accesso ai attributi?

+0

Questo appare piuttosto come se fosse una strana conversione da un SimpleXmlEle a una StdClass. Puoi per favore chiarire come hai ottenuto la discarica? – Gordon

+0

questa è la conversione da JSON non XML :) – bensiu

risposta

26

vi si possa accedere da una stringa:

echo $obj->{'@attributes'}->id; // levaka0B8a 

o di una variabile:

$name = '@attributes'; 
echo $obj->$name->id; 

Per ulteriori informazioni su come le variabili sono definite e utilizzato, consultare i seguenti documenti:

  • Variable Basics - Utile per l'apprendimento di ciò a cui è possibile accedere come variabile senza utilizzare stringhe.
  • Variable Variables - Come abbiamo usato la variabile per fungere da nome per un'altra variabile. Questo può essere pericoloso, quindi procedere con cautela
9

Si potrebbe fare questo:

$object->{'@attributes'} 
2

accesso diretto è al di sotto di ircmaxwell o Richard giardino, tuttavia è possibile decodificare JSON con secondo param vera e recive serie insted quello che potrebbe essere un più facile accesso

3

tenta di utilizzare , Codice

$objSimpleXml->attributes()->id 

di esempio per fare riferimento