2013-04-26 2 views
0

У меня проблема с доступом к объекту (stdClass) после json_decode.Возврат значения декодированного JSON

Я не знаю, почему существует проблема с - как часть ключа. Вот мой код:

$a = array('body'=>array('short-description'=>'its short description','detailed-description'=>'its detail descriptionb'),'title'=>'its a title'); 
$b = json_encode($a); 
$c = json_decode($b); 
var_dump($c->body->short-description); 

Проблема в том, что я не могу получить значение короткого описания, потому что ключ имеет -.

+0

Это просто недопустимый синтаксис. Вы не можете иметь имена переменных с помощью '-'. '$ foo-bar = 42;' недействителен. –

ответ

2

Попробуйте как этот

var_dump($c->body->{"short-description"}); 

Вам необходимо заключить в скобки.

1

Попыться;

$c = json_decode($b, true); 

echo $c['body']['short']['short-description']; 

True Boolean преобразует его в многомерный массив, и позволяет вам получить доступ к JSon таким образом.

0

Просто заверните в скобках, например:

var_dump($c->body->{'short-description'}); 
Смежные вопросы