Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: JSON
Форумы портала PHP.SU » » Вопросы новичков » JSON

Страниц (1): [1]
 

1. ytrewq123 - 29 Апреля, 2016 - 01:31:45 - перейти к сообщению
Здравствуйте!
Я тут игрался с JSON и тут такое. Не подскажите как добраться до,
[otzyv1] => horoho
или
[1] => idei
как вывести?
Вот что в целом.

{"kniga":"Bulj bulj Karasik","avtor":"Y.Pisun","0":{"otzyv1":"horoho","otzyv2":"ploho"},"1":"idei","2":"zadumki"}


stdClass Object
(
[kniga] => Bulj bulj Karasik
[avtor] => Y.Pisun
[0] => stdClass Object
(
[otzyv1] => horoho
[otzyv2] => ploho
)

[1] => idei
[2] => zadumki
)
2. caballero - 29 Апреля, 2016 - 12:15:13 - перейти к сообщению
ну так он преобразовал в обэект, какие проблемы
и что именно хотите вывести? Значение по ключу или что?
3. ytrewq123 - 29 Апреля, 2016 - 13:18:14 - перейти к сообщению
Не ну я всё понимаю.
Просто хочу вывести.

Например тут ясно.

$переменная-> kniga ___ результат будет Bulj bulj Karasik

Но как к подобраться к [otzyv1] => horoho
Ибо так не получается.
$переменная->0->otzyv1
4. igosja - 29 Апреля, 2016 - 13:19:21 - перейти к сообщению
Проблема в том, что свойства объекта не могут иметь числовые названия.
Сделайте json в виде
{"kniga":"Bulj bulj Karasik","avtor":"Y.Pisun","i0":{"otzyv1":"horoho","otzyv2":"ploho"},"i1":"idei","i2":"zadumki"}
PHP:
скопировать код в буфер обмена
  1. echo $json->i0->otzyv1; //Выведет horoho
  2. echo $json->i1; //Выведет idei

Вместо $json вставьте свою переменную с данными из json
5. ytrewq123 - 29 Апреля, 2016 - 18:02:22 - перейти к сообщению
То есть по сути ни как.


Вот что я засовывал а JSON
$json = array(

'kniga' => 'Bulj bulj Karasik',
'avtor'=>'Y.Pisun',
[
'otzyv1'=>'horoho',
'otzyv2'=>'ploho'
],
'idei','zadumki'
);



Так то работает
$json = array(

'kniga' => 'Bulj bulj Karasik',
'avtor'=>'Y.Pisun',
otzyv=>[
'horoho',
'ploho'
],
'idei','zadumki'
);

Просто думал если где то такое будет, как это понять и решить.
Хорошо.
Спасибо.
6. igosja - 29 Апреля, 2016 - 18:17:39 - перейти к сообщению
Тогда нужно json преобразовывать в массив, а не в объект.
PHP:
скопировать код в буфер обмена
  1. $json = '{"kniga":"Bulj bulj Karasik","avtor":"Y.Pisun","0":{"otzyv1":"horoho","otzyv2":"ploho"},"1":"idei","2":"zadumki"}';
  2. $json = json_decode($json, true);
  3.  
  4. print $json[0]['otzyv1'];//выведет horoho
7. ytrewq123 - 29 Апреля, 2016 - 19:49:30 - перейти к сообщению
Это да. Просто экспериментировал и получилось такое. Вот и думал как.
Там вроде ещё констант куча. Но такого варианта нет.
Cпасибо, учтём, будем знать и иметь в виду.

 

Powered by ExBB FM 1.0 RC1