Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android JSON代码中的路径查找_Android_Json_Google Api - Fatal编程技术网

Android 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

我正在创建一个应用程序,它使用GoogleAPI获取有关GoogleBooks的详细信息

从下面的JSON链接中,我想检索有关该书作者和书名的数据

我对这个问题的看法是:

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响应吗?这里是sir
author.getJSONObject(j)是什么让你认为作者的内容是对象?