2011-11-14 21 views
6

私は、APIを使ってWikipediaの記事からテキストを取り出そうとしています(APIは、彼らが提供しているものの寛大な言葉ですが、私はそれを使用します)後続のJSONオブジェクトの解析に関する問題が発生しています。Wikipedia API - JSONオブジェクトへのアクセス

$.getJSON("http://en.wikipedia.org/w/api.php?action=parse&format=json&callback=?", {page:"Red Sea clownfish", prop:"text"}, function(data) { 

私は、コマンドを使用して文字列にこの情報を解析しようとすると: はつまり、オブジェクトは、私はそのラベルのコマンドを実行した後に「*」は、ということであるキーの下を探していたテキストが含まれています:私は、使用してコンソールに出力しています

var dat = data.parse.text.*; 

:残念ながら

console.log(dat); 

は、Google ChromeのもFirefoxのどちらも01を解析することができるように見えますキー。完全な 'データ'オブジェクトをコンソールにダンプすると、データ構造の(ネストされた)キーが 'parse'、 'text'、および'*'であることがわかります。私は必要なテキストを '*'キーまでダンプすることもできます。私。

var dat = data.parse.text; 

作品。 「*」文字は認識されたくないということだけです。

これを修正する方法についてのご意見はありますか?理想的には、 '*'キーが参照している値にアクセスしたいと思っています。私はちょうどjavascriptでそれをプログラムする方法を知らない。

+0

「callback =?」には何がありますか? (おそらくMediaWikiが無効な文字を取り除いているので、空のコールバックと同じように動作するようです。) –

+1

はい! Wikipedia/MediaWikiは間違いなく世界で最も恐ろしいAPIを持っています。 – Jaseem

答えて

8

*文字はJavaScriptの識別子(変数名)の一部として使用できないため、構文は機能しません。代わりに、有効な識別子であるかどうかに関係なく、配列/添字記法を使用して任意の文字列を使用してプロパティにアクセスできます。

var dat = data.parse.text['*']; 
+0

作品!速やかなご返信ありがとうございます! – Mephistopheles