【问题标题】:How to parse Soundcloud json response using PHP如何使用 PHP 解析 Soundcloud json 响应
【发布时间】:2012-12-25 18:29:40
【问题描述】:

它只是通过轨道值。我需要的是获取用户名。这是我使用的,谢谢

{ “项目”:[ { “种类”:“轨道”, “身份证”:33369455, "uri":"https://api.soundcloud.com/tracks/33369455", “用户”:{ “身份证”:758840, "用户名":"JoeDreamer", "avatar_url":"https://i1.sndcdn.com/avatars-000006878204-maqsrd-large.jpg?923db0b"}, "download_count":0, “comment_count”:1 }, { “种类”:“轨道”, “身份证”:33369455, "uri":"https://api.soundcloud.com/tracks/33369455", “用户”:{ “身份证”:758840, "用户名":"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) { 回声 $mydata->id 。 "\n"; foreach($mydata->user as $value) { 回声 $value->用户名 。 "\n"; } }

【问题讨论】:

    标签: php arrays json api soundcloud


    【解决方案1】:

    也许

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

    【讨论】:

      【解决方案2】:

      通过向json_decode() 函数添加一个附加标志,我们可以告诉该函数返回一个关联数组而不是对象。

      json_decode (string $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";
      }  
      

      【讨论】:

        【解决方案3】:

        您可能错过的是$myData-user 本身就是一个对象。 PHP 的json_decode() 函数递归地传递您使用的JSON 字符串的每个元素。

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

        您必须将用户名作为其父元素的属性来访问。通过将额外的key 变量添加到内部foreach 循环中,我们可以检查键名并仅选择username 属性。

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

        然而,额外的循环是多余的。除非您有某些特定的需要遍历每个属性,否则您可以像这样直接访问用户名 -

        $mydata->user->username
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多