簡體   English   中英

如何使用 PHP 解析 Soundcloud json 響應

[英]How to parse Soundcloud json response using PHP

它只能通過軌道值。 我需要的是獲取用戶名。 這是我使用的,謝謝

{
        "items":[
        {
        "kind":"track",
        "id":33369455,
        "uri":"https://api.soundcloud.com/tracks/33369455",
        "user":{
        "id":758840,
        "username":"JoeDreamer",
        "avatar_url":"https://i1.sndcdn.com/avatars-000006878204-maqsrd-large.jpg?923db0b"},
        "download_count":0,
        "comment_count":1
        },
        {
        "kind":"track",
        "id":33369455,
        "uri":"https://api.soundcloud.com/tracks/33369455",
        "user":{
        "id":758840,
        "username":"JoeDreamer",
        "avatar_url":"https://i1.sndcdn.com/avatars-000006878204-maqsrd-large.jpg?923db0b"},
        "download_count":0,
        "comment_count":1
        }]
    }
$user = json_decode(file_get_contents("http://mydata.com/data.json"));
    foreach($user->items as $mydata)
    {
         echo $mydata->id . "\n";
         foreach($mydata->user as $value)
         {
              echo $value->username . "\n";
         }
    }

也許

$user = json_decode(file_get_contents("http://mydata.com/data.json"));
foreach($user->items as $mydata)
{
     echo $mydata->id . "\n";
     echo $mydata->user->username;

}    

通過向json_decode()函數添加一個額外的標志,我們可以告訴函數返回一個關聯數組而不是對象。

json_decode ( 字符串 $json [, bool $assoc = false ])

如果您選擇像這樣使用json_decode ,您的任務會變得非常簡單。 您可以像訪問多維數組一樣訪問用戶名。

$user = json_decode($str,true);  // notice the "true" argument here
foreach($user['items'] as $mydata)
{
    echo $mydata['id'] . "," . $mydata['user']['username'] . "\n";
}  

您可能錯過的是$myData-user本身就是一個對象。 PHP 的json_decode()函數以遞歸方式傳遞您使用的 JSON 字符串的每個元素。

{
  "kind":"track",
  ...
  "user":{
    "id":758840,
    "username":"JoeDreamer",
    ...
  }
}

您必須訪問用戶名作為其父元素的屬性。 通過向內部foreach循環添加額外的key變量,我們可以檢查鍵名並只選擇username屬性。

...
foreach($mydata->user as $key=>$value){
  if ($key == 'username'){
    echo $value . "\n";
  }
}

然而,額外的循環是多余的。 除非您有某些特定的需要遍歷每個屬性,否則您可以像這樣直接訪問用戶名 -

$mydata->user->username

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM