我试图从这个JSON格式中获取数据,以便能够在屏幕上显示问题,我不知道如何能够这样做,因为我尝试了多种方式,例如:
$stats = json_decode($result);
// var_dump($stats);
echo $stats->elo;
没有任何工作我不确定如何获取由于[]的数据,因为我以前从未使用过这个。如下所示,我需要能够进入的一小部分数据。
[{"_id":{"championId":51,"role":"DUO_CARRY"},"elo":"BRONZE","patch":"7.11","championId":51,"positions":{"deaths":3,"winRates":6,"minionsKilled":2,"previousOverallPerformanceScore":6}}]
提前致谢
答案 0 :(得分:1)
处理JSON时有一个简单的经验法则。首先解码并使用print_r()
进行打印,以便轻松查看其结构
$s = '[{"_id":{"championId":51,"role":"DUO_CARRY"},"elo":"BRONZE","patch":"7.11","championId":51,"positions":{"deaths":3,"winRates":6,"minionsKilled":2,"previousOverallPerformanceScore":6}}]';
$stats = json_decode($s);
print_r($stats);
在这种情况下会向您显示
Array
(
[0] => stdClass Object
(
[_id] => stdClass Object
(
[championId] => 51
[role] => DUO_CARRY
)
[elo] => BRONZE
[patch] => 7.11
[championId] => 51
[positions] => stdClass Object
(
[deaths] => 3
[winRates] => 6
[minionsKilled] => 2
[previousOverallPerformanceScore] => 6
)
)
)
所以现在你知道有一个数组在这种情况下只包含一个对象
所以要显示elo
你可以做一个简单的
echo $stats[0]->elo; // BRONZE
但由于它是一个对象数组,最好假设在某些情况下会有多个统计数据,因此您可以在这样的foreach循环中处理它
foreach ($stats as $stat) {
echo $stat->elo;
}
答案 1 :(得分:1)
如果你在json中获得了多个数组数据,请使用foreach,如下所示
foreach ($stats as $row) {
echo $row->elo;
}
如果您只想获得第一条记录,请使用$stats[0]->elo;
答案 2 :(得分:0)
如果我理解正确(你想要在数组中获取数据吗?),请不要知道, 但试试
$stats = json_decode($result,true);
var_dump($stats);
答案 3 :(得分:0)
您的json_decode输出是一个对象数组。因此,您必须首先使用index来访问数组元素,然后使用$array[0]->elo
Live demo.
$string = '[{"_id":{"championId":51,"role":"DUO_CARRY"},"elo":"BRONZE","patch":"7.11","championId":51,"positions":{"deaths":3,"winRates":6,"minionsKilled":2,"previousOverallPerformanceScore":6}}]';
print_r(json_decode($string)[0]->elo);
答案 4 :(得分:0)
如果你想获得关联数组,你应该使用$stats = json_decode($result, true);
var_dump($stats);
并且你会得到
array (size=1)
0 =>
array (size=5)
'_id' =>
array (size=2)
'championId' => int 51
'role' => string 'DUO_CARRY' (length=9)
'elo' => string 'BRONZE' (length=6)
'patch' => string '7.11' (length=4)
'championId' => int 51
'positions' =>
array (size=4)
'deaths' => int 3
'winRates' => int 6
'minionsKilled' => int 2
'previousOverallPerformanceScore' => int 6
获取元素获取$stats[0]
或循环的第一个数组键。防爆。 $stats[0]['elo']