1

ウィキペディアの mediawiki API を使用してページ データを取得しようとしています。クエリの URL は次のとおりです。

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

返されるプロパティの 1 つはカテゴリです。

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

json_decode 後の var_dump :

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

私にこれを与える:

object(stdClass)[21] public 'sortkey' => string '' (長さ=0)
public '*' => string 'テルグ語の映画' (length=21)

object(stdClass)[22] public 'sortkey' => 文字列 '' (長さ = 0)
public '*' => 文字列 '1991_films' (長さ = 10)

object(stdClass)[23] public 'sortkey' => string '' (長さ=0)
public '*' => string 'Indian_films' (長さ=12)

$cat->sortkeyとして public 'sortkey' にアクセスできます

質問は - public '*' の値にアクセスするにはどうすればよいですか?

4

2 に答える 2

3

次の表記法を使用して、特殊文字を含む名前でオブジェクト プロパティにアクセスできます。

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

興味深い読書 > https://stackoverflow.com/a/10333200/67332

于 2013-08-10T08:58:12.883 に答える
2

おそらくjson_decode()、配列とオブジェクトではなく、戻り配列のみを作成する必要があります。

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

それは簡単です:

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

オブジェクトにアクセスできないプロパティ名があるのはあまり好きではありません。

于 2013-08-10T08:59:57.750 に答える