Intereting Posts
OnClick on ViewPager не запускается Полная гистограмма в экране в AchartEngine Установите анимационный прослушиватель на анимацию активности Могут ли облачные сообщения Google работать с Facebook? % 3F вместо знака вопроса в моем обновленном URL-адресе Как программно использовать ограничение использования данных, установленное пользователем в конфигурации ОС Android? ListView с кнопками и статическим массивом String Внешний ключ SQLite Glassware auth: android.accounts.OperationCanceledException «Совместное использование учетных данных не допускается: отмена». Как правильно установить высоту строки для Android? Идентификатор LinkedIn получает значение null для android Сбой приложений только в версии выпуска Каким должно быть имя пакета приложения для Android? Невозможно открыть опцииMenu программно без щелчка пользователя Как изменить шрифт в виджетах Android на пользовательские шрифты в папке «активы» приложения?

Значение типа org.json.JSONArray не может быть преобразовано в JSONObject

Попал в эту ошибку:

3169-3190 / com.meisolsson.app E / JSON Parser: данные анализа ошибок org.json.JSONException: значение [{"type": 0, "can_see_custom_stories": true, "display": "", "name": " jenniaim "}, {" тип ": 0," can_see_custom_stories ": истинный," Дисплей ":"», "название": "lucasgardebrand"}, { "типа": 0, "can_see_custom_stories": истинный, "Дисплей": "", "название": "herr_anderzzon"}, { "типа": 0, "can_see_custom_stories": правда, "дисплей": "", "название": "chrillebile"}, { "типа": 0, "can_see_custom_stories ": правда," дисплей ":"», "название": "meisolsson"}, { "тип": 0, "can_see_custom_stories": правда, "дисплей": "", "название": "sakanapanda"}, { «Type»: 0, «can_see_custom_stories»: true, «display»: «Team Snapchat», «name»: «teamsnapchat»}, {"type": 0, "can_see_custom_stories": true, "display": "", "название": "fabianlindfors"}, { "тип": 0, "can_see_custom_stories": правда, "дисплей": "название" "Katja": "katjaawesome"}, { "тип": 0, "can_see_custom_stories": True, "display": "", "name": "swimkey"}, {"type": 1, "can_see_custom_stories": true, "display": "", "name": "agnesholmberg"}] типа org .json.JSONArray не может быть преобразован в JSON объект

Итак, вот код:

public class JSONParser extends AsyncTask<Void, Void, Boolean> { static InputStream is = null; static JSONObject jObj = null; static String json = ""; // constructor public JSONParser() { } public JSONObject getJSONFromUrl(String url) { // Making HTTP request try { // defaultHttpClient DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(url); ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); nameValuePairs.add(new BasicNameValuePair("username", LoginActivity.Suser)); nameValuePairs.add(new BasicNameValuePair("password", LoginActivity.Spass)); httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse httpResponse = httpClient.execute(httpPost); HttpEntity httpEntity = httpResponse.getEntity(); is = httpEntity.getContent(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } try { BufferedReader reader = new BufferedReader(new InputStreamReader( is, "iso-8859-1"), 8); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } is.close(); json = sb.toString(); } catch (Exception e) { Log.e("Buffer Error", "Error converting result " + e.toString()); } // try parse the string to a JSON object try { jObj = new JSONObject(json); } catch (JSONException e) { Log.e("JSON Parser", "Error parsing data " + e.toString()); } // return JSON String return jObj; } @Override protected Boolean doInBackground(Void... params) { getJSONFromUrl("http://flapplabs.se/development/snapchat/friends.php"); return null; } } 

Solutions Collecting From Web of "Значение типа org.json.JSONArray не может быть преобразовано в JSONObject"

[..] означает, что он должен быть JSONArray и {..} означает, что он должен быть JSONObject .

Следовательно:

 try { JSONArray jObj = new JSONArray(json); } catch (JSONException e) { Log.e("JSON Parser", "Error parsing data " + e.toString()); } 

Несмотря на то, что у меня был единственный объект JSON, он хранился в массиве, как указывает Харихаран с квадратными скобками [{items: items, …}]

Моим решением было просто разобрать единственный объект, расположенный в позиции массива [0], как это

 JSONArray jsonArray = new JSONArray(stringIn); JSONObject obj = jsonArray.getJSONObject(0);