2013-08-10 2 views
1

Я пытаюсь использовать wiki-файлы wiki для получения данных на странице. URL запроса:PHP Parsing json декодированный результат из wikipedia api MediaWiki

http://en.wikipedia.org/w/api.php?action=parse&format=json&page=Nirnayam_%281991_film%29

Одним из свойств Возвращается категории:

"categories":[{"sortkey":"","*":"Telugu-language_films"},{"sortkey":"","*":"1991_films"},{"sortkey":"","*":"Indian_films"}] 

var_dump после json_decode:

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

дает мне это:

obje кт (StdClass) [21] общественное 'SortKey' => строка '' (длина = 0)
общественное '*' => строка 'телугу-language_films' (длина = 21)

объект (StdClass) [22 ] общественный 'SortKey' => строка '' (длина = 0)
общественного '*' => строка '1991_films' (длина = 10)

объекта (StdClass) [23] общественная 'SortKey' => строка '' (длина = 0)
общественности '*' => строка 'Indian_films' (длина = 12)

я могу получить доступ общественности 'SortKey', как $ cat-> sortkey

Вопрос - Как получить доступ к значению в общедоступном '*'?

+0

Отсортировано! Я нашел ответ здесь: http://stackoverflow.com/questions/13078453/how-do-i-parse-a-php-object-when-the-attribute-name-is?rq=1 – SIndhu

ответ

3

Вы можете получить доступ к свойствам объекта с именами, которые содержат специальные символы, используя эти обозначения:

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

Интересное чтение>https://stackoverflow.com/a/10333200/67332

2

Вы, вероятно, следует сделать json_decode() только возвращать массивы, а не массивы и объекты.

json_decode($jsonstring, true); // last parameter true will return only arrays 

Тогда легко:

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

Я не очень люблю объекты, чтобы иметь недоступные имена свойств.

Смежные вопросы