这是我的JSON API调用的输出
{
"response": {
"status":200,
"message":"",
"startRow":0,
"endRow":27,
"totalRows":27,
"data":[
{
"id":5,
"start":42364236,
"end":436234523,
"startTimeSlot": 1,
"endTimeSlot": 1,
"subjects":["ne"],
"teachers":["KRO"],
"groups":["v1a"],
"locations":["M92"],
"type":"lesson",
"remark":"Take care to bring your books",
"valid":true,
"cancelled":false,
"modified":true,
"moved":false,
"new":false,
"changeDescription":"The location has been changed from M13 to M92"
},
...
]
}
}
通过PHP 请求
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => 'https:// [api request url]',
));
$resp = curl_exec($curl);
我想通过“foreach'”来描述这些结果。变量中的php命令。像这样:
foreach ($resp->response->data as $object): {
$subjects = $object->subjects
但我怎么能做到这一点?上面描述的方式不起作用..我已经尝试了很多脚本..
答案 0 :(得分:0)
您实际上并未将下载的输出解码为数组。 你需要使用json_decode();在您的数据上,将其转换为数组或对象。
$resp = json_decode($resp);
将创建一个对象。
$resp = json_decode($resp, true);
将创建一个数组。
答案 1 :(得分:0)
此代码无法工作的原因是因为curl将json作为字符串。所以你要做的就是循环一个普通的字符串而不是一个数组。
您可以使用它将您的json字符串转换为关联数组:
json_decode($resp, true);
当它以关联数组转换时,您可以按照json格式编写的方式简单地使用数据,并且可以轻松地遍历它。