PHP如何从VimeoAPI中提取JSON数据并将其打印到XML文件中?

PHP如何从VimeoAPI中提取JSON数据并将其打印到XML文件中?,php,json,xml,api,vimeo,Php,Json,Xml,Api,Vimeo,我调用下面的Vimeo API来返回特定视频下的所有视频。我试图实现的是只提取我想要的特定JSON数据。“uri”和“name”是我唯一需要的数据。我如何将它打印到XML文件中 顺便说一句,这是我的尝试: <!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title&

我调用下面的Vimeo API来返回特定视频下的所有视频。我试图实现的是只提取我想要的特定JSON数据。“uri”和“name”是我唯一需要的数据。我如何将它打印到XML文件中

顺便说一句,这是我的尝试:

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
      <?PHP

      header('Content-Type: text/html; charset=utf-8');
      require ("vendor/autoload.php");
      use Vimeo\Vimeo;

      $client = new Vimeo("{client_id}", "{client_secret}", "{access_token}");

      $user_id = '121265018';
      $project_id = '2370434';
      $response = $client- 
      >request("/users/$user_id/projects/$project_id/videos");

   var_dump($response);
   if ($response['status'] === 200) {
   $videos = [];
   foreach ($response['data'] as $data) {
     $result = [
       //'uri' => $data['uri'],
       'name' => $data['name'],
       //'pictures' => $data['pictures'],
     ];
     $videos[] = $result;
   }

   echo json_encode($videos, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
  } else {
    echo json_encode($response['body']['error']);
  }


   ?>


我想你应该换一条线

 $jsondata = file_get_contents($response);


您只需将这三件事保存在一个单独的数组中,然后以所需的格式打印

更新

您的所有视频都有一系列数据。sow您需要使用foreach获取所有视频的uri、名称和图片,并保存到另一个数组中

<body>
  <?PHP
  header('Content-Type: text/html; charset=utf-8');
  require("vendor/autoload.php");

  use Vimeo\Vimeo;


  $client = new Vimeo("{client_id}", "{client_secret}", "{access_token}");

  $user_id = '121265018';
  $project_id = '2370434';
  $response = $client->request("/users/$user_id/projects/$project_id/videos");
  if ($response['status'] === 200) {
    $videos = [];
    foreach ($response['body']['data'] as $data) {
      $result = [
        'uri' => $data['uri'],
        'name' => $data['name'],
        'pictures' => $data['pictures'],
      ];
      $videos[] = $result;
    }

    echo json_encode($videos, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
  } else {
    echo json_encode($response['body']['error']);
  }
  ?>
</body>


Parse error:syntax error,在$json=json_decode($jsondata,true)行的D:\XAMPP\htdocs\MyAPI\GP.php中出现意外的“$json”(T_变量);添加在新行末尾添加$jsondata我认为这是语法错误。因为即使在我加上;它在第29行
标题('Content-Type:application/json')
中的D:\XAMPP\htdocs\MyAPI\GP.php中显示了解析错误:语法错误,意外的“;”(T_字符串)开始时毫无意义。此时您已经创建了HTML输出。注意:未定义索引:第27行的D:\XAMPP\htdocs\MyAPI\GP.php中的uri注意:第28行的D:\XAMPP\htdocs\MyAPI\GP.php中的名称未定义索引:第29行的D:\XAMPP\htdocs\MyAPI\GP.php中的图片{“uri”:null,“name”:null,“pictures”:null}是否是uri,名称和图片在“数据”数组下??我已经用实际的API JSON数据更新了我的问题,以显示u。但是我尝试了两种方法1)“uri”=>$response['data']['uri'],2)“uri”=>$response['body']['data']['uri'],但看起来它不起作用:(你需要知道你想要的密钥在哪里,给
var\u dump($resquest);
并查找您的密钥位置,然后保存到另一个数组中。根据上面对我的代码所做的更改,您的意思是我应该使用var_dump来输出我的JSON数组?var_dump($response)??
<body>
  <?PHP
  header('Content-Type: text/html; charset=utf-8');
  require("vendor/autoload.php");

  use Vimeo\Vimeo;


  $client = new Vimeo("{client_id}", "{client_secret}", "{access_token}");

  $user_id = '121265018';
  $project_id = '2370434';
  $response = $client->request("/users/$user_id/projects/$project_id/videos");
  if ($response['status'] === 200) {
    $videos = [];
    foreach ($response['body']['data'] as $data) {
      $result = [
        'uri' => $data['uri'],
        'name' => $data['name'],
        'pictures' => $data['pictures'],
      ];
      $videos[] = $result;
    }

    echo json_encode($videos, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
  } else {
    echo json_encode($response['body']['error']);
  }
  ?>
</body>