数组JSON Steam API中的目标对象


Targeting object within array JSON Steam API

如何访问此Steam API中的webm->max?让我困惑的是[{的顺序,对象之前的一个数组?我不太确定这里的目标。。

我试过:

$gameTrailer = $game_json->57690->data->movies[0]->webm->max;

$gameTrailer = $game_json['57690']['data']['movies']['webm']['max'];

API文本如下:

"movies": [{
    "id": 2029441,
    "name": "Tropico 4 Gameplay Trailer",
    "thumbnail": "http:'/'/cdn.akamai.steamstatic.com'/steam'/apps'/2029441'/movie.293x165.jpg?t=1447358847",
    "webm": {
        "480": "http:'/'/cdn.akamai.steamstatic.com'/steam'/apps'/2029441'/movie480.webm?t=1447358847",
        "max": "http:'/'/cdn.akamai.steamstatic.com'/steam'/apps'/2029441'/movie_max.webm?t=1447358847"
    },
    "highlight": true
}],

和"电影"位于:

{"57690": {
        "data": {

假设我总是想要数组中的第一个电影(在本例中是一个一的数组)。提前谢谢。

正确语法:

$game_json->{57690}->data->movies[0]->webm->max

如果对象带有数字键,则必须用大括号将键名称括起来(数字键不是有效的特性名称)。

如果使用关联选项:

json_decode( $data, True );

你的第二次尝试几乎是对的。只需在movie:之后添加正确的索引

$gameTrailer = $game_json['57690']['data']['movies'][0]['webm']['max'];