@DanKud

Как правильно получить данные из JSON?

Есть JSON-данные такого вида:

{"type":"new","data":"{\"quality\":\"low\",\"color\":\"F0F0F0\",\"class\":\"123456789\",\"id\":\"16489431815678\"}"}

$json = ('наш_json');
$obj = json_decode($json);
echo $obj->type; // выводит new
echo $obj->data; // выводить полностью строку data

после обработки функцией json_decode получаем объект с двумя классами type и data соответственно. Но в JSON-данных в классе data по факту еще один объект. Как проще всего вывести эти данные не строкой, а так же сделать объект с классами? Если выводить массивом то соответственно тоже всего два значения в массиве выводится. В функции json_decode есть параметр depth может быть он может помочь упростить это все, но я не понял как его использовать.
  • Вопрос задан
  • 252 просмотра
Пригласить эксперта
Ответы на вопрос 3
supervaleha
@supervaleha
Web-development
Попробуйте передать true вторым параметром в json_decode.

В таком случае Вы сможете спокойно работать с вложенными массивамию
Ответ написан
@BorisKorobkov Куратор тега PHP
Web developer
Вариант 1 (правильный):
Сделать нормальный JSON. Не
{"type":"new","data":"{\"quality\":\"low\",\"color\":\"F0F0F0\",\"class\":\"123456789\"...

а
{"type":"new","data":{"quality":"low","color":"F0F0F0","class":"123456789"...


Вариант 2 (костыль):
$obj = json_decode($json);
$obj->data = json_decode($obj->data);
Ответ написан
@Limon1980
А как вы получили JSON? У меня с 7 ноября 2017 года не выдает по ссылке 'https://www.instagram.com/'.$acc.'/media/'
Что сделал Instagramm, кто знает как теперь получать последние 20 постов выбранного аккаунта?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы