Я пытаюсь использовать библиотеку JSON для получения информации из Twitter с помощью функции поиска get.Я получаю сообщение об ошибке:
Текст JSONArray должен начинаться с '[' в 1 [символ 2, строка 1]
, поэтому он в основном в неправильной форме.Некоторые люди говорят, что это должен быть объект, но каждый раз, когда я вызываю конструктор, он говорит, что он не может принимать строку в качестве входных данных.Как мне получить эту строку в виде JSONArray, чтобы я мог получить доступ к ее элементам.
Вот мой код:
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"));
}
мой оператор печати показывает строку, содержащую:
{"completed_in":0.318,"max_id":144850937012428800,"max_id_str":"144850937012428800","next_page":"?page=2.....................
Это строка в форме объекта JSON, но онана самом деле не объект.Это все еще строка.Я печатаю строку.Как я могу получить это в Object или, еще лучше, в JSONArray, чтобы я мог получить доступ к его элементам.