检索json数组中的对象

时间:2015-02-24 00:26:10

标签: php json

我正在尝试检索team1得分但是我似乎无法弄清楚如何输出这个。到目前为止,我已经有了这个工作,其中$ obj是json输出。

$obj->recent

JSON

"recent": [
    [
        {
        "match_id": "64886",
        "has_vods": false,
        "game": "dota2",
        "team 1": {
            "score": "",
            "name": "Wheel Whreck While Whistling",
            "bet": "7%"
        },
        "team 2": {
            "score": "",
            "name": "Evil Geniuses DotA2",
            "bet": "68%"
        },
        "live in": "1m 42s",
        "title": "Wheel Whreck... 7% vs 68% Evil...",
        "url": "",
        "tounament": "",
        "simple_title": "Wheel Whreck... vs Evil...",
        "streams": []
        }
]

2 个答案:

答案 0 :(得分:2)

你需要使用json_decode();此函数返回包含数组和对象的正确对象。现在你需要检查什么是对象以及什么是数组。

$obj = json_decode($obj, true);
$obj->recent; //array 
$obj->recent[0]; //first element of array
$obj->recent[0][0]; //first element of second array
$obj->recent[0][0]->{'team 1'}; //access to object team 1
$obj->recent[0][0]->{'team 1'}->score; //access to property of object team 1

您可以找到this有助于了解会发生什么;

您还可以查看json_decode documentation

上的示例

如果在$ obj上使用var_dump函数,它将显示什么是数组以及什么是对象。

答案 1 :(得分:0)

您需要使用json_decode将其转换为数组。看起来recent是一个对象数组的数组。所以,你会做类似

的事情
$json = json_decode($obj->recent, true);
$team1 = $json[0][0]['team 1']; //should return array
$score = $team1['score']

编辑:感谢您的评论,错过true作为json_decode

中的第二个参数