как повторить fixer.io JSON PHP - PullRequest
0 голосов
/ 10 мая 2018

Привет, я пытаюсь получить 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

1 Ответ

0 голосов
/ 10 мая 2018

вместо

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