2017-07-09 16 views
1

私のアプリでは、次のものを除いて、問題なしでボレーリクエストを使用してWiki APIからJSONを解析しています。私はテキストと共にこれらの表現を解析する必要があります。Wiki APIから数式表現JSONを解析しようとしています

私は(例えば)、このURLを使用しています:

https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&explaintext=&titles=%20Partition%20function%20(statistical%20mechanics)

は、この記事では問題の部分である: enter image description here

解析が日科技連正常に動作しますが、それがに来るときこれはAPIで次のようになります。

enter image description here

と私のアプリでは、私はテキストと一緒に "{displaystyle ="の部分。 私は「/ n」か何かを得られません。私は多くのスペースと、この "{displaystyle" を取得

enter image description here

enter image description here

:私のアプリで が、それはこのようになります。テキストが狂ってしまう。これを克服するために私ができることはありますか?私はこれのためのAPIクエリを見つけることができませんでしたが、おそらく私はJSON respone自体で何かをすることができます。

ありがとうございました。

+0

ここで運が悪いと思います。あなたは、インターフェイスを介して得るものは、元のテキストから削除されたちょうどいくつかのHTMLタグを持っているようだ。残っていることを理解するのは難しいです。 – Henry

答えて

2

formatversion=2

API:Data formats#JSON parameters

クリーナー形式のJSON(とPHP)形式の応答を取得するためformatversion=2を指定します。これはまた、ほとんどの非ASCII文字をUTF-8としてエンコードします。より便利かもしれません

<annotation encoding=\"application/x-tex\">{\\displaystyle \\beta }</annotation> 

https://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&titles=Partition%20function%20(statistical%20mechanics)&formatversion=2返すJSONのような<math>マークアップを含む:だからMW 1.25+

。約formatversion=2が必要以上に使用することがより困難にする欠点の数からAPI:JSON version 2

format=json被るで見つけることができる

詳細情報。これらの多くは、XMLが元の出力形式であり、API応答の基礎となるデータ構造がこのために設計されているために発生します。

この問題を解決するため、ディスカッションの後でMediaWiki 1.25に新しいJSON応答形式が導入されました。デフォルトではないので、formatversion=2を指定した場合にのみ新しい形式の結果が得られ、jsonphpの形式(人間が判読可能なjsonfmphpfmの亜種)の場合にのみ結果が得られます。

+1

javaの "MathML"コードを解析する良い方法を提案できますか?私は数式を解析するためのいくつかのライブラリを見つけましたが、私は彼らがこのケースに合っているかどうかはわかりません。 –

+0

@TalBarda - 私は、Javaと遊んだんし、それに慣れていないですが、[Androidの下のJavaでのMathMLの構文解析については、この質問](https://stackoverflow.com/questions/1784786/mathml-and-java)は持っていないしました有益なトップアンサーとその下のいくつかが役立つかもしれません。 –

関連する問題