我有这样的 json 响应,使用 json_decode 通过 URL 获取。
function get_data($url)
{
$ch = curl_init();
$timeout = 3;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$domain = "http://localhost:3000/";
$getcontent = get_data($domain);
$data = json_decode($getcontent, true);
获取后,响应为:
{"Data":{"Players":"2,621","Kills":"87","Medals":"908","Cards":"324","TimePlayed":"88hours","GamesWon":"328","ObjectiveTime":"05:25:02"}}
我想删除Data
对象,使其只是 PHP 中的响应正文。
我已经尝试过:$data[0]['Players'];
但它没有查看 json 数据正文。
$players = $data[0]['Players'];
所以我把它显示为:
echo 'Players: ' . $players . ';
注意:有时Data
总是会改变动态,如Responses
、Players
、PlayerName
、Date
。
我可以使用$data['. $playername . ']["Player"];
吗?
如果你
不知道key
你可以使用PHP
的key((函数。无论您的第一key
的价值如何,您都可以像这样访问它。
试试这个代码演示
<?php
ini_set('display_errors', 1);
$string='{"Data":{"Players":"2,621","Kills":"87","Medals":"908","Cards":"324","TimePlayed":"88hours","GamesWon":"328","ObjectiveTime":"05:25:02"}}';
$array=json_decode($string,true);
print_r($array[key($array)]["Players"]);
解决方案 2:在此处尝试此代码片段
<?php
ini_set('display_errors', 1);
$string='{"Data":{"Players":"2,621","Kills":"87","Medals":"908","Cards":"324","TimePlayed":"88hours","GamesWon":"328","ObjectiveTime":"05:25:02"}}';
$array=json_decode($string,true);
extract($array[key($array)]);
echo $Players;
echo $Kills;
echo $Medals;
echo $Cards;
echo $TimePlayed;
echo $GamesWon;
echo $ObjectiveTime;
整个代码:
<?php
ini_set('display_errors', 1);
function get_data($url)
{
$ch = curl_init();
$timeout = 3;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$domain = "http://localhost:3000/";
$getcontent = get_data($url);
$data = json_decode($getcontent, true);
print_r($data[key($data)]["Players"]);