【发布时间】:2020-11-29 22:59:18
【问题描述】:
背景:
我有一个项目将通过 API 访问的数据移动到另一个应用程序。代码在 PHP 中,目前我无法访问返回的 JSON 字符串中的“url”。
$json = '{"data": [{"vehicle": {"id": "2122233","name": "MY REG"},"files": [{"vin": "WMARR44444W146311","createdAtTime": "2020-08-05T00:25:47.388Z","url": "https://tachograph-files43679/2020/8/5/WMA24XZZ7BW146311/1596587147388-b6785431-c2e1-41ff-b7af-9bb078654882.ddd?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-XXXXXXXXXXXXX","id": "XXXXXXXXX"}]}],"pagination": {"endCursor": "XXXXX-be93-44b2-91a2-095af9f1c301","hasNextPage": false}}';
这是 JSON 字符串(已删除敏感数据)。得到结果后,我必须在另一个调用中使用 URL 来检索文件数据。
如果我使用 json_decode($json) 会出错。
如果我使用 jsondecode($json,true) 则 URL 不可访问。
我知道问题出在 JSON 字符串中的一个对象,但我不知道如何访问它。
最终我将在 JSON 中引用多个车辆和多个文件。
所以,我想遍历 JSON,然后再次调用以下载数据文件。
任何帮助表示赞赏。
谢谢 马尔科姆
【问题讨论】:
-
json_decode($json)没有报错,它生成一个对象 -
echo $obj->data[0]->files[0]->url;