我正在尝试从维基百科检索文本以在 Android 应用程序上使用。我正在使用 Java。我要做的第一件事是从特定文章中检索部分,将它们显示给用户,当用户单击一个部分时,通过另一个 http 请求获取部分文本。
所以,这两个请求是:
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,我创建了这两个类:
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");
}
再次感谢您的帮助