在PHP中从JSON获取数据
我正在尝试从这个JSON格式中获取数据,以便能够在屏幕上显示问题是我不确定如何才能做到这一点,因为我尝试了多种方法,例如:在PHP中从JSON获取数据,php,arrays,json,Php,Arrays,Json,我正在尝试从这个JSON格式中获取数据,以便能够在屏幕上显示问题是我不确定如何才能做到这一点,因为我尝试了多种方法,例如: $stats = json_decode($result); // var_dump($stats); echo $stats->elo; 由于[]的原因,我不确定如何获取数据,因为我以前从未使用过这个。如下图所示,这是我需要进入的一小段数据 [{"_id":{"championId":51,"role":"DUO_CARRY"},"elo":"BRONZE","p
$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}}]
提前感谢不知道我是否正确理解了您的意思(您想获取数组中的数据吗?), 但是试试看
不知道我是否正确理解了您(您想获取数组中的数据吗?), 但是试试看
处理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
但由于它是一个对象数组,所以在某些情况下,最好假设有多个stat,这样您就可以像这样在foreach循环中处理它
foreach ($stats as $stat) {
echo $stat->elo;
}
处理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
但由于它是一个对象数组,所以在某些情况下,最好假设有多个stat,这样您就可以像这样在foreach循环中处理它
foreach ($stats as $stat) {
echo $stat->elo;
}
如果在该json中获得多个数组数据,请按如下所示使用foreach
foreach ($stats as $row) {
echo $row->elo;
}
如果只想获得第一条记录,请使用
$stats[0]->elo代码>如果在该json中获得多个数组数据,请按如下方式使用foreach
foreach ($stats as $row) {
echo $row->elo;
}
如果只想获得第一条记录,请使用$stats[0]->elo代码>您的json_解码输出是一个对象数组。因此,您必须首先使用index访问数组元素,然后使用$array[0]->elo访问object的属性
json_decode的输出是一个对象数组。因此,您必须首先使用index访问数组元素,然后使用$array[0]->elo访问object的属性
如果您想获得关联数组,应该使用$stats=json\u 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']
如果要获得关联数组,应使用$stats=json\u 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']
您必须使用foreach从最基本的数组中获取该值-$stats[0]->elo代码>。感谢的可能副本已经寻找了很长时间,但找不到类似的东西。您必须使用foreach从最基本的数组中获取该值-$stats[0]->elo代码>。可能重复的感谢一直在寻找,但找不到类似的东西