ウィキペディアからテキストを取得してAndroidアプリで使用しようとしています。私はJavaを使用しています。私が最初にしたいのは、特定の記事からセクションを取得してユーザーに表示し、ユーザーが1つのセクションをクリックすると、別のhttpリクエストでセクションテキストを取得することです。
したがって、2つの要求は次のとおりです。
http://en.wikipedia.org/w/api.php?format=json&action=parse&page=Valencia_Cathedral&prop=sections
そしてこれ:
http://en.wikipedia.org/w/api.php?format=json&action=parse&page=Valencia_Cathedral&prop=text§ion=1
私の質問は、情報を格納し、それを使用してこれらのクラスに変換するために、どのような種類のJavaオブジェクトを作成する必要があるかということ.fromJSON()
です。
@NathanZのおかげで、次の2つのクラスを作成しました。
public class WikiResponseSections {
String title;
List<Section> sections;
}
public class Section {
int toclevel;
String level;
String line;
String number;
String index;
String fromtitle;
int byteoffset;
String anchor;
}
しかし、GsonによってHTTP応答をこれらのオブジェクトに変換し、フィールド'title'の値を読み取ろうとすると、JavaNullPointerExceptionをトリガーするエラーが発生します。変換のコードは次のとおりです。
InputStream stream = null;
try {
stream = entity.getContent();
} catch (IllegalStateException e) {
Log.e("Stream","ERROR illegalstateexception");
} catch (IOException e) {
Log.e("Stream","ERROR exception");
}
reader = new BufferedReader(new InputStreamReader(stream));
GsonBuilder bldr = new GsonBuilder();
Gson gson = bldr.create();
WikiResponse = gson.fromJson(reader, WikiResponseSections.class);
if (WikiResponse != null){
Log.i("WikiResponse",WikiResponse.getTitle()); //The error triggers HERE
publishProgress();
}
else
Log.i("WikiResponse","NULL");
}
もう一度助けてくれてありがとう