Php Json Decode - отображение значения элементов второго уровня
Я пытаюсь декодировать формат JSON Моя конечная точка API-это https://api.reliableserver.host/api/landings
И это уже выход
{
"success": true,
"data": [
{
"id": 1,
"primary_balance": "$4,184.37",
"primary_currency": "USD",
"secondary_balance": "¥0",
"secondary_currency": "JPY",
"tertiary_balance": "฿0.00",
"tertiary_currency": "THB",
"first_language": "ไทย",
"second_language": "English",
"footer_text": "a",
"created_at": "2020-10-26T07:45:49.000000Z",
"updated_at": "2020-10-28T05:31:04.000000Z",
"deleted_at": null
}
],
"message": "Landings retrieved successfully"
}
Мне нужно Эхо отдельных значений, например: первичный баланс: $4,184.37
Я попробовал использовать это:
$url = "https://api.reliableserver.host/api/landings";
$obj = json_decode($url);
echo $obj>primary_balance;
Но это не сработало, любезно объясните мне, что я делаю не так.
Ответы - Php Json Decode - отображение значения элементов второго уровня / Php Json Decode - Display value of second level items

28.10.2020 09:10:49
Вы можете сделать это так :
$url = '{"success": true,"data": [{"id": 1,"primary_balance": "$4,184.37","primary_currency": "USD","secondary_balance": "¥0","secondary_currency": "JPY","tertiary_balance": "฿0.00","tertiary_currency": "THB","first_language": "ไทย","second_language": "English","footer_text": "a","created_at": "2020-10-26T07:45:49.000000Z","updated_at": "2020-10-28T05:31:04.000000Z","deleted_at": null}],"message": "Landings retrieved successfully"}';
$obj = json_decode($url, true);
echo $obj['data'][0]['primary_balance'];
// output $4,184.37
Выше код протестирован здесь
Вам нужен метод file_get_contents (), чтобы получить данные JSON из вашего заданного URL-адреса.
$url = "https://api.reliableserver.host/api/landings";
$obj = json_decode(file_get_contents($url), true);
echo $obj['data'][0]['primary_balance'];
// output $4,184.37

28.10.2020 09:21:08
В принципе, вы нигде не вызываете этот api. Если это открытая конечная точка (без auth или заголовков, вы можете сделать file_get_contents() или я предлагаю вам использовать curl. Кроме того, вам нужно проверить структуру данных ответа, у нее есть ключ "данные", который представляет собой массив. поэтому вам нужно использовать foreach для итерации по ключу "данные".
Я дал примерный ответ, который должен работать, если в данных есть только 1 элемент.
$url = "https://api.reliableserver.host/api/landings";
$resp = file_get_contents($url);
$obj= json_decode($resp);// will return in object form
echo $obj->data[0]->primary_balance;
или
$url = "https://api.reliableserver.host/api/landings";
$resp = file_get_contents($url);
$obj= json_decode($resp, true); // will return in array form
echo $obj['data'][0]['primary_balance'];