Я новичок в PHP, и я просто пытаюсь получить одно значение из словаря JSON. Это кажется очень простым (по крайней мере, мне), но у меня возникли проблемы с этим. Я посмотрел на документацию PHP для JSON_decode
и я тоже посмотрел наПарсинг данных JSON с удаленного сервера«но это не сделало то, что я хотел. Он возвратил элемент словаря, который я хотел, как 0, а затем просто выплюнул файл JSON. Затем я посмотрел на»получить данные из JSON с помощью php«и это просто ничего не возвращает.
Пример JSON
{
"ask": 344.28,
"bid": 343.89,
"last": 343.97
}
Первая попытка
$jsoncontent=file_get_contents("https://api.bitcoinaverage.com/ticker/global/USD");`
$priceusd=json_decode($json-content);
$lastusd=$priceusd['last'];
echo "Decoded JSON:\n";
echo "$priceusd\n";
echo "Raw JSON:\n";
echo "$jsoncontent\n";
Вторая попытка
$result=file_get_contents("https://api.bitcoinaverage.com/ticker/global/USD");
$result = iconv('UTF-16', 'UTF-8', $result);
$json = json_decode($result);
echo $json->last;
Все, что я хочу, это значение одного из элементов словаря в JSON по URL.
Спасибо!
Если предположить, $data
содержит то, что было возвращено с сервера, вы делаете:
$object = json_decode($data);
$last = $object->last;
или же:
$array = json_decode($data, true);
$last = $array['last'];
Когда вы пропустите второй аргумент json_decode
, он возвращает объект, и вы получаете доступ к части, которую вы хотите, как свойство объекта. Если вы дадите второй аргумент true
, он возвращает ассоциативный массив, и вы получаете доступ к элементу, используя обозначение массива.
Других решений пока нет …