У меня есть некоторый объект json, который я декодировал, и один из атрибутов начинается с «@», и я не могу получить доступ к элементу с php, потому что он выдает ошибку.
[offers] => stdClass Object ( [@attributes] => stdClass Object ( [id] => levaka0B8a ) )
Как я могу получить доступ к атрибутам?
Вы можете получить к нему доступ по строке:
echo $obj->{'@attributes'}->id; // levaka0B8a
Или переменная:
$name = '@attributes'; echo $obj->$name->id;
Дополнительные сведения о том, как определяются и используются переменные, см. В следующих документах:
Вы можете сделать это:
$object->{'@attributes'}
Попробуй использовать,
$objSimpleXml->attributes()->id
Образец кода для ссылки
<?php $string = <<<XML <a> <foo name="one" game="lonely">1</foo> </a> XML; $xml = simplexml_load_string($string); var_dump( $xml ); foreach($xml->foo[0]->attributes() as $a => $b) { echo $a,'="',$b,"\"\n"; } ?>
прямой доступ ниже от ircmaxwell или Richard Tuin, однако вы можете декодировать JSON со вторым параметром true и recive array insted, что может быть проще для доступа