Java: Using GSon incorrectly? (null pointer exception)

Posted by Rosarch on Stack Overflow See other posts from Stack Overflow or by Rosarch
Published on 2009-12-08T02:19:28Z Indexed on 2010/04/30 7:17 UTC
Read the original article Hit count: 189

Filed under:
|
|
|

I'm trying to get the hits of a google search from a string of the query.

public class Utils {

public static int googleHits(String query) throws IOException {
	String googleAjax = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=";
	String json = stringOfUrl(googleAjax + query);
	JsonObject hits = new Gson().fromJson(json, JsonObject.class);

	return hits.get("estimatedResultCount").getAsInt();
}

public static String stringOfUrl(String addr) throws IOException {
	ByteArrayOutputStream output = new ByteArrayOutputStream();
	URL url = new URL(addr);
	IOUtils.copy(url.openStream(), output);
	return output.toString();
}

public static void main(String[] args) throws URISyntaxException, IOException {
	System.out.println(googleHits("odp"));
}

}

The following exception is thrown:

Exception in thread "main" java.lang.NullPointerException
    at odp.compling.Utils.googleHits(Utils.java:48)
    at odp.compling.Utils.main(Utils.java:59)

What am I doing incorrectly? Should I be defining an entire object for the Json return? That seems excessive, given that all I want to do is get one value.

For reference: the returned JSON structure.

© Stack Overflow or respective owner

Related posts about java

Related posts about gson