Формат следующего ответа? - PullRequest
0 голосов
/ 03 октября 2011

Я использую функцию автоматического предложения Bing, чтобы автоматически предлагать мне термины с учетом запроса. Вы можете найти инструмент здесь: http://api.bing.com/osjson.aspx?query=pe, поскольку вы видите, что он возвращает странный формат, который не совсем JSON. Этот конкретный стандарт отличается от JSON? Я попытался разобрать его как JSON, используя ...

        InputStream i = new URL(url).openStream();
    BufferedReader reader = new BufferedReader(new InputStreamReader(i, Charset.forName("UTF-8")));
    JSONObject json = new JSONObject(readAll(reader));

но я получаю ошибку A JSONObject text must begin with '{' found:" at 2 [character 3 line 1]

readAll =

      private static String readAll(Reader rd) throws IOException {
        StringBuilder sb = new StringBuilder();
        int cp;
        while ((cp = rd.read()) != -1) {
          sb.append((char) cp);
        }
        return sb.toString();
      }

Ответы [ 2 ]

2 голосов
/ 03 октября 2011

Ваш пример действителен JSON:

["pe",["people","people search","petsmart","petco","petfinder","pep boys","people finder","people of walmart"]]

Это не объект, это массив, который содержит строку в первой позиции и другой массив во второй.Так что попробуйте разобрать как JSONArray, а не JSONObject.

0 голосов
/ 03 октября 2011

Объект JSON начинается с { и заканчивается }, который класс JSONObject был разработан для анализа. Массив JSON начинается с [ и заканчивается ], класс JSONArray которого был разработан для анализа.

Надеюсь, это поможет.

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