Android JSON代码中的路径查找
我正在创建一个应用程序,它使用GoogleAPI获取有关GoogleBooks的详细信息 从下面的JSON链接中,我想检索有关该书作者和书名的数据 我对这个问题的看法是:Android JSON代码中的路径查找,android,json,google-api,Android,Json,Google Api,我正在创建一个应用程序,它使用GoogleAPI获取有关GoogleBooks的详细信息 从下面的JSON链接中,我想检索有关该书作者和书名的数据 我对这个问题的看法是: private Book extractFeatureFromJson(String bookJSON) { try { JSONObject baseJsonResponse = new JSONObject(bookJSON); JSONArray items = baseJson
private Book extractFeatureFromJson(String bookJSON) {
try {
JSONObject baseJsonResponse = new JSONObject(bookJSON);
JSONArray items = baseJsonResponse.getJSONArray("items");
// If there are results in the features array
for(int i=0;i<10;i++)
{
JSONObject firstFeature = items.getJSONObject(i);
JSONObject volumeinfo=firstFeature.getJSONObject("volumeinfo");
String title=volumeinfo.getString("title");
JSONArray author= volumeinfo.getJSONArray("authors");
for(int j=0;j<author.length();j++)
{
JSONObject authorFeature=author.getJSONObject(j);
}
// Create a new {@link Event} object
return new Book(title,author);
}
} catch (JSONException e) {
Log.e(LOG_TAG, "Problem parsing the earthquake JSON results", e);
}
return null;
}
private Book extracturefromjson(字符串bookJSON){
试一试{
JSONObject baseJsonResponse=新的JSONObject(bookJSON);
JSONArray items=baseJsonResponse.getJSONArray(“items”);
//如果要素数组中有结果
对于(int i=0;i它在第一个循环迭代(1-10)中重新运行一本书,您需要创建一个图书列表和返回列表。您的类图书
将字符串标题、JSONArray作者
作为参数,对吗
我建议您创建列表图书
集合,并将响应中包含的每一本书添加到本书中当然理解JSON的工作原理很重要,对于这一点,上述答案应该给您足够的提示,让您手动处理。不过,我的建议是,您不要手动解析它,而让自动工具处理它把这个给你
您可以使用Gson将其自动解析为工作类。
现在,如何告诉Gson将其解析为什么?有一个名为JsonSchema2Pojo的伟大工具可以处理此问题。Gradle插件如下:
它能够在构建期间生成Gson可以理解的类。我建议使用存储库中提供的配置,并根据您的需要进行调整
插件解释json模式以生成类,因此您需要在插件配置中使用模式指向目录。起初,这可能看起来像另一个复杂问题,但您可以使用示例答案生成模式,就像上面使用网页粘贴的答案一样
综上所述,使用Gson和jsonschema2pojo,您可以让这项任务几乎不费吹灰之力,并专注于更重要的任务(除了一些需要编写自定义解析器的情况)。配置可能需要一段时间,但它仍然比编写自定义解析器快得多,您可以通过更改架构轻松地更改它。这非常方便,尤其是对于您无法控制的外部API。您可以放置JSON响应吗?这里是sirauthor.getJSONObject(j)是什么让你认为作者的内容是对象?