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

Пытаюсь получить значение usd но ничего не выходит из-за того, что не могу использовать название первого значения в json ответе.

$json = '{"bitcoin":{"usd":56991}}';
$usd = $json['bitcoin']['usd'];

Как получить число 56991 не используя bitcoin?

Спасибо!


Ответы (2 шт):

Автор решения: Антон Металлов

Надо использовать json_decode: https://www.php.net/manual/ru/function.json-decode.php

$json = '{"bitcoin":{"usd":56991}}';
$usd = json_decode($json, true)['bitcoin']['usd'];

Я не могу указать bitcoin при получении usd, как-то нужно его перескочить

Тогда так:

$json = '{"bitcoin":{"usd":56991}}';
$jsonDecoded = json_decode($json, true);
$innerData = array_pop($jsonDecoded);
$usd = $innerData['usd'];
echo $usd;
→ Ссылка
Автор решения: iEPCBM

Вам нужно пропарсить строку JSON и только потом применять ее данные. Для этого используйте json_decode. Например:

$json = '{"bitcoin":{"usd":56991}}';
$data = json_decode($json);

$bitcoin = $data->bitcoin;
$usd = $bitcoin->usd;

или

$json = '{"bitcoin":{"usd":56991}}';
$data = json_decode($json, true);

$bitcoin = $data['bitcoin'];
$usd = $bitcoin['usd'];

Подробнее о json_decode можете прочитать в документации.

→ Ссылка