Php JSON数组作为对象
我是dota 2的粉丝,我正在Steam Web API上进行实验,在这里可以检索匹配历史记录和匹配详细信息。看看我的PHP代码Php JSON数组作为对象,php,json,api,steam,Php,Json,Api,Steam,我是dota 2的粉丝,我正在Steam Web API上进行实验,在这里可以检索匹配历史记录和匹配详细信息。看看我的PHP代码 $json = '{ "result": { "players": [ { "account_id": 4294967295, "player_slot": 0, "hero_id": 103, "tower_damage":
$json = '{ "result": {
"players": [
{
"account_id": 4294967295,
"player_slot": 0,
"hero_id": 103,
"tower_damage": 1259,
"hero_healing": 263,
"level": 17,
"ability_upgrades": [
{
"ability": 5591,
"time": 130,
"level": 1
},
{
"ability": 5589,
"time": 333,
"level": 2
},
{
"ability": 5591,
"time": 454,
"level": 3
}
]
}
]}
}';
$obj = json_decode($json, false);
我想打印玩家数组下的值,这些值是帐户id、玩家插槽、英雄id等等。我在json数组作为对象时遇到问题。我还想打印3个值下的数据。1)我认为不需要将json转换为object,将其转换为数组更简单
$data = json_decode($json, true);
2) 然后你可以得到任何部分的数据:
正如你所说:
我想打印玩家数组下的值,这些值是帐户id、玩家插槽、英雄id等等
很简单:
foreach($data['players'] as $player)
{
echo "Account id:" . $player['account_id'] . "\n";
echo "Player's slot:" . $player['player_slot'] . "\n";
//And other fields...
echo "Ability upgrades:";
foreach($player['ability_upgrades'] as $au)
{
echo "Ability:" . $au['ability'] . ", time:" . $au['time'] . ", level:";
echo $au['level'] . "\n";
}
}
如果要将所有对象转换为数组,请使用此函数
函数对象阵列($d){
if(is_object($d)){
$d=获取对象变量($d);
}
if(is_数组($d)){
返回数组映射(uuu函数,$d);
}
否则{
返回$d;
}
}
以你为例。。。
如果你打印
$obj = json_decode($json, false);
,为您提供每个节点上的对象。
但是在这样做之后
$obj = objectToArray(json_decode($json, false));
,使用此函数将所有节点作为数组获取。
所以你可以打印循环中的所有玩家,或者像这样打印帐号
echo $obj['result']['players'][0]['account_id'];
为什么不使用数组呢?更容易。。。
$data = json_decode($json, true);
foreach($data['result']['players'] as $player) {
// Your code
}