#php #arrays #json
Вопрос:
У меня уже некоторое время возникают трудности с получением значения eth из URL-адреса Json, он продолжает возвращать ошибку «Неопределенное смещение: 0». Как бы легко это ни было для любого, кто дает ответ, пожалуйста, учтите, что я ученик и готовлюсь. Мой код ниже
$ethjs = "https://api.coingecko.com/api/v3/simple/token_price/ethereum?contract_addresses=0xdac17f958d2ee523a2206206994597c13d831ec7amp;vs_currencies=eth";
$ejson = file_get_contents($ethjs);
$ejson = json_decode($ejson, true);
$one_eth = $ejson[0]->eth;
Ответ №1:
Ответ с URL-адреса выглядит примерно так
// https://api.coingecko.com/api/v3/simple/token_price/ethereum?contract_addresses=0xdac17f958d2ee523a2206206994597c13d831ec7amp;vs_currencies=eth
{
"0xdac17f958d2ee523a2206206994597c13d831ec7": {
"eth": 0.0003859
}
}
Несколько вещей сверху выводят
- Там нет [0], так как вы пытаетесь извлечь
- поскольку это, по-видимому, PHP, который поддерживает гетерогенные массивы, вам необходимо получить к нему доступ через значение
contract_address
параметра, переданного в URL, поскольку этоkey
объект результата.
Ставлю это в целом.
$ethjs = "https://api.coingecko.com/api/v3/simple/token_price/ethereum?contract_addresses=0xdac17f958d2ee523a2206206994597c13d831ec7amp;vs_currencies=eth";
$ejson = file_get_contents($ethjs);
$ejson = json_decode($ejson, true);
$one_eth = $ejson['0xdac17f958d2ee523a2206206994597c13d831ec7']['eth'];
echo $one_eth;
Комментарии:
1. Итак, чтобы получить значение eth, как вы предлагаете мне отформатировать код? Я заблудился.
2. вам придется сделать что-то вроде
$one_eth = $ejson['0xdac17f958d2ee523a2206206994597c13d831ec7']['eth'];
3. Теперь выдает ошибку «Использование неопределенной константы eth — предполагается, что» eth » (это приведет к ошибке в будущей версии PHP)»
4. Точно так же, когда я делаю это $one_eth = $ejson[‘0xdac17f958d2ee523a2206206994597c13d831ec7’]; Он повторяет «eth»: 0,0003859, когда мне просто нужно значение eth для расчета.
5. @Василий Мозес, Взгляните на обновленный ответ