用Java中的Gson解析Google搜索
我正在使用谷歌搜索API,它返回一个JSON文件 那部分工作得很好。现在我正试图解析JSON文件并从第一个结果中提取URL,可能会有数百个结果 这是我的密码:用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
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)