您好我正在尝试回复从api返回的数据,我正在使用以下代码:
<?php
ini_set("include_path", '/home/matthewt/php:' . ini_get("include_path") );
// This sample uses the Apache HTTP client from HTTP Components
(http://hc.apache.org/httpcomponents-client-ga/)
require_once 'HTTP/Request2.php';
$url = $request->getUrl();
$headers = array(
// Request headers
'Ocp-Apim-Subscription-Key' => 'my_id',
);
$request->setHeader($headers);
$parameters = array(
// Request parameters
);
$url->setQueryVariables($parameters);
$request->setMethod(HTTP_Request2::METHOD_GET);
// Request body
$request->setBody("{body}");
try
{
$response = $request->send();
echo $response->getBody();
}
catch (HttpException $ex)
{
echo $ex;
}
直到这一点为止所做的一切都很有效,并返回基本上如下所示的json数据:(我缩短了字段数量以节省空间)
[{&#34;游戏ID&#34;:49810&#34;季节&#34;:2017},{&#34;游戏ID&#34;:49811&#34;季节&#34;:2017 }]
我需要知道的是如何遍历这些数据以打印出每个游戏的结果。我知道我必须使用这样的东西:
$arr = json_decode();
foreach($arr as $item) { //foreach element in $arr
$game_id = $item['GameID']; //etc
}
但我不确定需要解码的是什么......是$ response?
由于
答案 0 :(得分:0)
如果$response->getBody()
包含你的json,那么json_decode它,那么这将是你可以循环的对象数组。
所以试试这个:
// snip
try
{
$response = $request->send();
$arr = json_decode($response->getBody());
foreach((array) $arr as $item) { //foreach element in $arr
echo $item->GameID; //etc
echo $item->Season; //etc
}
}
catch (HttpException $ex)
{
echo $ex;
}