Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.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
用Java中的Gson解析Google搜索_Java_Ajax_Json_Parsing_Gson - Fatal编程技术网

用Java中的Gson解析Google搜索

用Java中的Gson解析Google搜索,java,ajax,json,parsing,gson,Java,Ajax,Json,Parsing,Gson,我正在使用谷歌搜索API,它返回一个JSON文件 那部分工作得很好。现在我正试图解析JSON文件并从第一个结果中提取URL,可能会有数百个结果 这是我的密码: package gson; import com.google.gson.Gson; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import java.io.BufferedReader; import java.io.FileNotFo

我正在使用谷歌搜索API,它返回一个JSON文件

那部分工作得很好。现在我正试图解析JSON文件并从第一个结果中提取URL,可能会有数百个结果

这是我的密码:

package gson;


import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.logging.Level;
import java.util.logging.Logger;

public class GSON {
    public static void main(String[] args) {
        Gson gson = new Gson();

        try {
            System.out.println("Reading from a JSON file");

            BufferedReader br = new BufferedReader(new FileReader("/Users/Nic/Desktop/test.json"));

            //Results obj = gson.fromJson(br, Results.class);

            Results results = new Gson().fromJson(br, Results.class);

            for (int i=0; i<1; i++) {
                results.getResults(i);
            }

            //System.out.println("URL: " + obj.getResults());

        } catch (FileNotFoundException ex) {
            Logger.getLogger(GSON.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

}

有什么想法吗?

所以结果是空的?有。似乎在解析JSON时出现了问题,它没有找到信息并将其添加到Results中。您的JSON是什么样子的?我打赌您的JSON与您的Results类不匹配。如果没有别的,结果包含一个结果列表,每个结果列表将包含一个结果列表,每个结果列表将包含一个结果列表,这一事实让我无限担忧。
package gson;

import java.util.List;

public class Results {
    public String url;
    public List<Results> items;

    public String getURL() {
        return url;
    }

    public void setURL(String url) {
        this.url = url;
    }

    public List<Results> getItems() {
        return items;
    }

    public void setGroups(List<Results> items) {
        this.items = items;
    }

    public void getResults(int i) {
        System.out.println(items.get(i));
    }

    public String toString() {
        return String.format("%s", url);
    }
}
run:
Reading from a JSON file
Exception in thread "main" java.lang.NullPointerException
    at gson.Results.getResults(Results.java:26)
    at gson.GSON.main(GSON.java:27)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)