преобразование из String в JSONArray или JSONObject в Java - PullRequest
0 голосов
/ 08 декабря 2011

Я пытаюсь использовать библиотеку 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, чтобы я мог получить доступ к его элементам.

1 Ответ

2 голосов
/ 08 декабря 2011

Это JSON объект , а не массив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...