I’m trying to use the JSON library to consume twitter information from the get search feature. I’m getting the error:
A JSONArray text must start with ‘[‘ at 1 [character 2 line 1]
So it’s basically in the wrong form. Some people are saying this needs to be an object but everytime I call the constructor it says that it can’t take a String as input. How do I get this string into the form of a JSONArray so that I can access it’s elements.
Here is my code:
URL twitterSource = new URL("http://search.twitter.com/search.json?q=google");
ByteArrayOutputStream urlOutputStream = new ByteArrayOutputStream();
IOUtils.copy(twitterSource.openStream(), urlOutputStream);
String urlContents = urlOutputStream.toString();
// parse JSON
System.out.println(urlContents);
JSONArray jsonArray = new JSONArray(urlContents);
// use
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
System.out.println(jsonObject.getString("id"));
System.out.println(jsonObject.getString("text"));
System.out.println(jsonObject.getString("created_at"));
}
my print statement shows the string contains:
{"completed_in":0.318,"max_id":144850937012428800,"max_id_str":"144850937012428800","next_page":"?page=2.....................
This is a string in the form of a JSON object but it is not actually an object. It’s still a string. I’m printing a String. HOw can I get this into an Object or better yet a JSONArray so that I can actually access its elements.
That’s a JSON object, not an array.