Php 试图从json api获取数据

Php 试图从json api获取数据,php,json,Php,Json,我在做一个很小的项目。我正试图从这个json响应中提取“name”:“PHP”,,但我对如何处理这个问题感到非常困惑。这是json: "request": "https://whatcms.org/APIEndpoint/Technology?key=hidden&url=en.wikipedia.org", "request_web": "https://whatcms.org/?s=en.wikipedia.org", "result": { "code": 200,

我在做一个很小的项目。我正试图从这个json响应中提取
“name”:“PHP”,
,但我对如何处理这个问题感到非常困惑。这是json:

"request": "https://whatcms.org/APIEndpoint/Technology?key=hidden&url=en.wikipedia.org",
"request_web": "https://whatcms.org/?s=en.wikipedia.org",
"result": {
    "code": 200,
    "msg": "Success"
},
"results": [
    {
        "categories": [
            "Wiki"
        ],
        "name": "MediaWiki",
        "url": "https://whatcms.org/c/MediaWiki",
        "version": "1.34.0"
    },
    {
        "categories": [
            "Programming Language"
        ],
        "name": "PHP",
        "version": ""
    },
    {
        "categories": [
            "Web Server"
        ],
        "name": "HHVM",
        "version": "3.18.6"
    }
]

}
这是我尝试过的代码,但似乎不起作用。我收到此错误
注意:试图获取非对象的属性“name”

$data=file\u get\u contents($url);
$categories=json_解码($data);
$output=$categories->results->name;
echo$输出;

我对php和json非常陌生,所以我不太确定我在做什么。任何帮助都会很好,谢谢。

您的代码无法工作,因为
$categories->results
不是对象,而是数组

您可以访问数组中第一个对象的名称,如下所示:

$categories->results[0]->name;
如果要获取所有名称,可以在数组上循环或映射:

数组映射(函数($category){
返回$category->name;
},$categories->results);