2015-04-02 68 views
-1

嗨我对PHP使用API​​非常新颖。这是我第一次尝试。到目前为止,我已经获得了以JSON格式返回的数据。我有json_decoded()它和var_dump()返回我只能作为一个对象内的对象。我的PHP缺乏经验可能会在这里展示。PHP |在一个对象中访问一个对象

下面是我正在使用哪些代码成功检索数据。

$url = 'https://euw.api.pvp.net/api/lol/euw/v1.4/summoner/by-name/elderofaegis?api_key=RemovedForSO'; 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    $output = curl_exec($ch); 
    curl_close($ch); 
    $result = json_decode($output); 
    var_dump($result); 

下面是什么var_dump()正在返回

object(stdClass)[1] 
    public 'elderofaegis' => 
    object(stdClass)[2] 
     public 'id' => int 38186794 
     public 'name' => string 'ElderOfAegis' (length=12) 
     public 'profileIconId' => int 785 
     public 'summonerLevel' => int 30 
     public 'revisionDate' => float 1427933098000 

有谁知道我怎么可能通过其名称访问对象。通过这个我的意思是包含在引号内的部分,例如,如果我想呼应名称我想要的东西沿着(伪下方)的行。

echo $result->object['name']; 

上面的例子是伪,因为我不知道它。 对于任何人想知道这是英雄联盟API

谢谢。

+0

所以请告诉我问题是你无法访问它或什么 – 2015-04-02 09:50:50

回答

1

尝试

$result->elderofaegis->name; 
+0

这是行不通的,但中间部分'elderofaegis'将如何填充? '$ result-> elderofaegis-> name;' 因为我只是在请求之后得到这个结果,所以说iw请求相同的陈述由id – Kieranmv95 2015-04-02 09:34:45

+0

结构是由api响应定义的。你需要写一些变压器来将响应转化为你的欲望对象。 – Vail 2015-04-02 09:41:30

0

您可以添加true作为第二个参数json_decode($json, true)这将整个对象变换到一个数组,这将使其更容易引用这个

json-decode.php

+0

我看到这现在返回作为一个数组 – Kieranmv95 2015-04-02 09:36:27