PHP解析来自wikipedia api MediaWiki的json解码结果

PHP解析来自wikipedia api MediaWiki的json解码结果,php,categories,json,mediawiki-api,Php,Categories,Json,Mediawiki Api,我正在尝试使用WikipediaMediaWiki api获取页面数据。查询url为: 返回的属性之一是类别: "categories":[{"sortkey":"","*":"Telugu-language_films"},{"sortkey":"","*":"1991_films"},{"sortkey":"","*":"Indian_films"}] json_解码后的变量_转储: foreach($wiki_page_data_json->parse->categorie

我正在尝试使用WikipediaMediaWiki api获取页面数据。查询url为:

返回的属性之一是类别:

"categories":[{"sortkey":"","*":"Telugu-language_films"},{"sortkey":"","*":"1991_films"},{"sortkey":"","*":"Indian_films"}]
json_解码后的变量_转储:

foreach($wiki_page_data_json->parse->categories as $cat)
{
    var_dump($cat);
}
给我这个:

对象(stdClass)[21]公共'sortkey'=>string'(长度=0)
公共“*”=>字符串“泰卢固语电影”(长度=21)

对象(stdClass)[22]公共'sortkey'=>string'(长度=0)
公共“*”=>string“1991_电影”(长度=10)

对象(stdClass)[23]公共'sortkey'=>string'(长度=0)
公共“*”=>字符串“印度电影”(长度=12)

我可以通过$cat->sortkey


问题是-如何访问公共“*”中的值?

您可以使用以下符号访问名称包含特殊字符的对象属性:

foreach($wiki_page_data_json->parse->categories as $cat)
{
    var_dump( $cat->{'*'} );
}

有趣的阅读>

您可以使用以下符号访问名称包含特殊字符的对象属性:

foreach($wiki_page_data_json->parse->categories as $cat)
{
    var_dump( $cat->{'*'} );
}

有趣的阅读>

您可能应该让
json\u decode()
只返回数组,而不是数组和对象

json_decode($jsonstring, true); // last parameter true will return only arrays
那么很容易:

$cat['sortkey'];
$cat['*'];

我真的不喜欢对象具有不可访问的属性名。

您可能应该使
json\u decode()
只返回数组,而不返回数组和对象

json_decode($jsonstring, true); // last parameter true will return only arrays
那么很容易:

$cat['sortkey'];
$cat['*'];

我真的不喜欢对象有不可访问的属性名。

Sorted!我在这里找到了答案:排序!我在这里找到了答案: