2015-09-29 3 views
3

Отвечая Get JSON object from URL Difficulties, я заметил, что один из имен JSON был "$id":

{ "data" : [ 
    { 
     "$id": "1", 
     "SearchKey": "Alnwick |Alnwick", 
     ... 

Это вызвало следующий PHP код, чтобы бросить различные ошибки:

$json = ... //json above 
$obj = json_decode($json); 
echo property_exists($obj->data[0], '$id'); // prints true 
echo $obj->data[0]->$id; // PHP Fatal Error: Cannot access empty property ... 
echo $obj->data[0]->id; // PHP Notice: Undefined property stdClass::$id ... 
echo $obj->data[0]->'$id'; // PHP Parse Error: syntax error, unexpected ''$id'' (T_CONSTANT_ENCAPSED_STRING) ... 

Предполагая, что json декодируется как объекты, а не массивы, как я могу получить доступ к полю "$id"?

ответ

5

Доступ к переменной с помощью {'invalid-parameter-name'} работ:

echo $obj->data[0]->{'$id'}; // 1 
Смежные вопросы