@9StarRu

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

Имеется json строка следующего вида:

{"status":{"timestamp":"2021-05-03T16:47:16.362Z","error_code":0,"error_message":null,"elapsed":370,"credit_count":0,"notice":null},"data":{"2016-10-26T02:39:28.000Z":{"BTC":[1],"USD":[660.28167725,87283944,10525640015.288086]},"2016-10-27T02:39:28.000Z":{"BTC":[1],"USD":[702.39459229,89816296,11200777509.550781]}}}


23c58d664a4363375d37a1906d080971.png

Как получить данные из этого JSON в переменные, чтобы далее сохранить в базу данных?
Мне интересны данные USD в 3 вариантах, как в JSON строке.

Получилось получить данные так:

$json = file_get_contents($json_url);

$data = json_decode($json, true);

foreach($data['data'] as $datetime => $v) {
      echo "<br>$datetime<br>\n";

    foreach($v['USD'] as $item) {
      echo "$item<br>\n";
    }
   
}


Но результат не совсем тот, такой:

2016-10-19T23:59:27.000Z
630.52032471
69381664
10044476289.851


Нужно чтобы каждому значению была определена своя переменная php, например,
$date, $usd, $usd_two, $usd_three

Как реализовать?

Спасибо!
  • Вопрос задан
  • 397 просмотров
Решения вопроса 1
Immortal_pony
@Immortal_pony Куратор тега PHP
$json = '{"status":{"timestamp":"2021-05-03T16:47:16.362Z","error_code":0,"error_message":null,"elapsed":370,"credit_count":0,"notice":null},"data":{"2016-10-26T02:39:28.000Z":{"BTC":[1],"USD":[660.28167725,87283944,10525640015.288086]},"2016-10-27T02:39:28.000Z":{"BTC":[1],"USD":[702.39459229,89816296,11200777509.550781]}}}';
$data = json_decode($json, true);

foreach($data['data'] as $date=>$values) {
    $date = date("Y-m-d H:i:s", strtotime($date));
    $usd = $values['USD'][0] ?? null;
    $usd_two = $values['USD'][1] ?? null;
    $usd_three = $values['USD'][2] ?? null;
    
    // Далее здесь можно вызвать функцию, которая сохранит значения в базу
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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