在数组JSON Steam API中定位对象

时间:2016-05-03 23:41:59

标签: php arrays json 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": {

假设我总是想要一个数组中的第一部电影(在这种情况下是一个数组)。提前谢谢。

1 个答案:

答案 0 :(得分:1)

正确的语法:

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

当你有一个带有数字键的对象时,你必须用大括号包装键名(数字键不是有效的属性名)。

如果使用关联选项:

json_decode( $data, True );
你的第二次尝试几乎是正确的。只需在movie之后添加正确的索引:

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