[英]How to parse JSON with PHP
我有事需要幫助..
我如何解析這種格式的數據: https : //api.coinmarketcap.com/v1/ticker/
我嘗試在 php 中設置一個代碼
$url = 'https://api.coinmarketcap.com/v1/ticker/';
$content = file_get_contents($url);
$json = json_decode($content, true);
print_r($json);
這將列出所有這樣的值..
數組 ( [0] => 數組 ( [id] => 比特幣 [名稱] => 比特幣 [符號] => BTC [等級] => 1 [price_usd] => 2448.04 [price_btc] => 1.0 [24h_volume_usd] => 1935820000.0 [market_cap_usd] => 40128026876.0 [available_supply] => 16391900.0 [TOTAL_SUPPLY] => 16391900.0 [percent_change_1h] => 3.47 [percent_change_24h] => -11.1 [percent_change_7d] => -12.29 [LAST_UPDATED] => 1497512954)[1] = > 數組 ( [id] => ...
如何訪問某些值。 例如,如果我想顯示“名稱和符號”?
這個想法是將名稱+符號放在選擇(下拉)列表中,當用戶更改選擇時,下拉列表旁邊的文本字段會自動更改並正確顯示 market_cap_usd 值。
我能夠繼續並解析一些數據..
foreach ($json as $key => $value) {
foreach ($value as $valuta => $vrednost) {
echo "<p>$valuta | $vrednost</p>";
}
}
我記住這不是最好的方法..我是否需要創建對象(如何?)所以我可以直接調用“名稱”值或其他東西......
編輯:
我找到了解決訪問值問題的方法。 我還能夠將這些值放到 select/dropdownmenu 元素中。
這是我的版本:
<form>
<label for="sel1">Select list (select one):</label>
<select class="selectpicker" data-live-search="true">
<?php
$url = 'https://api.coinmarketcap.com/v1/ticker/';
$content = file_get_contents($url);
$json = json_decode($content, true);
foreach ($json as $key => $value) {
echo "<option>" . $json[$key]['name'] ." (". $json[$key]['symbol'] .")</option>";
}
?>
</select>
</form>
也許有人會在這里為他們自己的“問題”找到一些有用的東西。
我現在缺少的是下拉列表中的選擇和旁邊顯示正確值之間的聯系,基於該選擇。
對於您的情況,您將需要此代碼。 我更改了變量名稱以使其更易於解釋。
$url = 'https://api.coinmarketcap.com/v1/ticker/';
$content = file_get_contents($url);
$decodedData = json_decode($content, true);
foreach ($decodedData as $currency) {
echo "<option value='" . $currency["id"] . "'>" . $currency["name"] ." (". $currency["symbol"] .")</option>";
}
json_decode
作用是將 JSON 字符串轉換為 PHP 中的多維數組。 然后,您可以使用foreach
對其進行迭代。
嘿使用下面的代碼。
<?PHP
$url = 'https://api.coinmarketcap.com/v1/ticker/';
$content = file_get_contents($url);
$json = json_decode($content, true);
echo $json[0]["bitcoin"];
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.