在 PHP 中省略 JSON 正文结果中的 JSON 响应标题



我有这样的 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总是会改变动态,如ResponsesPlayersPlayerNameDate

我可以使用$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"]);    

最新更新