Как выполнить echo fixer.io json php

Привет, я пытаюсь получить json из fixer.io, а затем для каждой скорости повторять его, но не могу заставить его работать. код

<?php

    function usd(){
      echo 'HEJ test';
      $fixer_access_key = my_access_key;
      $url= 'https://data.fixer.io/api/latest?access_key=' . $fixer_access_key;
      echo $url;  
      $json = file_get_contents($url);
      $data = json_decode($json);
        echo $url . "<br>";
                echo 'printing json foreach <br>';
        foreach($data as $obj){
            echo '...';
            $prefix = $obj;
            echo $prefix;
            echo '<br>';}
echo 'done printing json foreach';
}
usd();  ?>

и результат:

https://data.fixer.io/api/latest?access_key=my_fixer_key

печать json foreach

печать json foreach завершена

Я бы начал с var_dump($data). Является ли ответ действительным в формате JSON, что на самом деле возвращается от json_decode?

ficuscr 10.05.2018 22:47

Скопируйте / вставьте всю информацию в сам вопрос. Добавьте пример json, результат, который вы получаете в данный момент, и каким должен быть ожидаемый результат. Прочтите: Как создать минимальный, полный и проверяемый пример, а также Как мне задать хороший вопрос?

Magnus Eriksson 10.05.2018 22:47

И, возможно, проверьте свои отчеты об ошибках / журналы. Предполагая, что ответ до сих пор при условии, вы получите ошибку Object of class stdClass could not be converted to string.

ficuscr 10.05.2018 22:55
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
3
197
1

Ответы 1

вместо

$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;

Другие вопросы по теме