Исключение в потоке main org.json.JSONException: текст JSONObject должен начинаться с '{' в 1 [символ 2, строка 1]

Я получаю сообщение об ошибке при чтении данных json из URL. Ниже приведен код, который я пытаюсь сделать. Пожалуйста, поправьте меня, где я ошибаюсь.

public class ReadingJsonData {
 public static void main(String[] args) throws JSONException {
 JSONObject json = readJsonFromUrl("http://requestb.in/pp1mzapp");
  }

public static JSONObject readJsonFromUrl(String url) throws IOException,  JSONException {
     InputStream is = new URL(url).openStream();
     try {
       BufferedReader rd = new BufferedReader(new InputStreamReader(is,  Charset.forName("UTF-8")));
       String jsonText = readAll(rd);
       JSONObject json = new JSONObject(jsonText.trim());
       return json;
     } finally {
       is.close();
     }
    }

     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();
    }
     }

И мой объект Json из URL выглядит так

{"FormID":"2095180","UniqueID":"213482652","Name":{"first":"Something","last":"New"},"Date of Birth":"Feb 03, 1926","Last 4 Digits of SSN":"1234","Week Beginning Date":"Jan 01, 2012","Week Ending Date":"Feb 03, 2014","Email":"[email protected]":""} 

person tom    schedule 10.09.2015    source источник


Ответы (3)


Ваш Json неверен, см. последнюю строку

{
"FormID": "2095180",
"UniqueID": "213482652",
"Name": {
    "first": "Something",
    "last": "New"
},
"Date of Birth": "Feb 03, 1926",
"Last 4 Digits of SSN": "1234",
"Week Beginning Date": "Jan 01, 2012",
"Week Ending Date": "Feb 03, 2014",
"Email": "[email protected]": ""
}
person NullPointerException    schedule 10.09.2015
comment
Это опечатка, я исправил - person tom; 10.09.2015

На самом деле то, что я получаю при открытии этого URL-адреса, это «хорошо». Вот почему он жалуется, что ваша строка Json не начинается с фигурной скобки.

person benohead    schedule 10.09.2015
comment
Да, когда я пробовал по-разному, все в порядке. Но когда вы пытаетесь открыть страницу с помощью requestb.in/pp1mzapp, она показывает объект json. - person tom; 10.09.2015
comment
Вы должны вывести содержимое jsonText на консоль, чтобы убедиться, что вы действительно получаете ожидаемую строку Json. - person benohead; 10.09.2015

Я вижу проблему, URL-адрес, который я передаю, получает HTML-страницу, всю страницу вместо тела ответа, который является проблемой.

person tom    schedule 10.09.2015