вместо
$data = json_decode($json);
использовать
$data = json_decode($json, true);
Это должно позволить foreacha работать - однако вы увидите только первый уровень ключей объектов json (не вложенных). Второй параметр json_decode
меняет результат с объекта на массив.
Вам также необходимо изменить foreach - на следующее: foreach($data as $key => $obj)
и внутри него echo $obj
на echo $key;
.
Вот упрощенная работа пример .
АЛЬТЕРНАТИВНОЕ РЕШЕНИЕ
Если работа foreach
не ваша цель, а скорее довольно печатный JSON, вместо этого используйте следующий код:
$json_string = json_encode($data, JSON_PRETTY_PRINT);
echo $json_string;