Форум программистов, компьютерный форум CyberForum.ru

Обработка Json - Android

Войти
Регистрация
Восстановить пароль
 
Алексей228
0 / 0 / 0
Регистрация: 15.05.2014
Сообщений: 11
25.02.2015, 17:22     Обработка Json #1
Всем доброго времени суток! Подскажите, пожалуйста, что в моем коде не так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public ArrayList<String> parseCategory(String input)
    {
        ArrayList<String> jsonlist=new ArrayList<String>(); 
  if(input!= null){
             try {
                  
 
                   JSONArray jArray = new JSONArray(input);
                
                   for(int i=0;i<jArray.length();i++) 
                      {
                         JSONObject json_data = jArray.getJSONObject(i);
                         String  id = json_data.getString("id");
                         String name =json_data.getString("name");
                             jsonlist.add(id+": "+name);
                     }
                   
        
                   return jsonlist;
              } catch (JSONException e) {
                  this.s=e.getMessage();
                  }
                      
             } return jsonlist;}
Возникает исключение: value of type java.lang.string cannot be converted to jsonarray

Перед этим input прогоняется через этот кусок кода:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
String result = "";
         try{
                BufferedReader reader = new BufferedReader(new InputStreamReader(is,"UTF-8"),8);
                StringBuilder sb = new StringBuilder();
                String line = null;
                while ((line = reader.readLine()) != null) {
                    sb.append(line + "\n");
                }
                is.close();
                result = sb.toString();
            }catch(Exception e){
                
            }
         return result;
    
    }
Ответ от сервера следующий: [{"id":"1","name":"Элемент 1"},{"id":"2","name":"Элемент 2"}]
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2015, 17:22     Обработка Json
Посмотрите здесь:

Android Парсинг JSON'а
Json Parsing Android
Android Создать JSON
Android C JSON в ListView
Android JSON Android
Android JSON
JSON в SQLite Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
 Аватар для YuraAAA
1563 / 1305 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
25.02.2015, 17:30     Обработка Json #2
Цитата Сообщение от Алексей228 Посмотреть сообщение
Перед этим input прогоняется через этот кусок кода:
а зачем?
Алексей228
0 / 0 / 0
Регистрация: 15.05.2014
Сообщений: 11
25.02.2015, 17:55  [ТС]     Обработка Json #3
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Override
            protected void onPostExecute(Void result) 
            { 
              super.onPostExecute(result);           
             
              try {
                HttpEntity entity = response.getEntity(); 
                InputStream is = entity.getContent();
                str=inputStreamToString.StreamToString(is);
                    is.close();
                
                  } 
                catch (IllegalStateException e) {tx.setText(e.getMessage());} 
                catch (IOException e) {tx.setText(e.getMessage());}
                catch(Exception e){tx.setText(e.getMessage());}
            }
Здесь я получаю ответ от сервера, пропускаю через функцию StreamToString(), которая была описана выше.
YuraAAA
 Аватар для YuraAAA
1563 / 1305 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
25.02.2015, 18:01     Обработка Json #4
Алексей228, мне кажется в этом проблема. Попробуйте так:

Java
1
2
HttpEntity entity = response.getEntity();
str = org.apache.http.util.EntityUtils.toString(entity, "UTF-8");
Алексей228
0 / 0 / 0
Регистрация: 15.05.2014
Сообщений: 11
25.02.2015, 18:15  [ТС]     Обработка Json #5
не помогло((
YuraAAA
 Аватар для YuraAAA
1563 / 1305 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
25.02.2015, 18:22     Обработка Json #6
Цитата Сообщение от Алексей228 Посмотреть сообщение
public ArrayList<String> parseCategory(String input)
после этого напишите
Java
1
Log.d("Json parser", "" + input);
и скиньте сюда, что же там за строка такая. И покажите версию кода с EntityUtils, как Вы поменяли.
P.S. по коду всё чётко.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.02.2015, 19:25     Обработка Json
Еще ссылки по теме:

Android Парсинг json
Android Получить json
Android Парсинг JSON
Парсер JSON Android
Android запутался с JSON

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Алексей228
0 / 0 / 0
Регистрация: 15.05.2014
Сообщений: 11
25.02.2015, 19:25  [ТС]     Обработка Json #7
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
HttpEntity entity = response.getEntity(); 
str = org.apache.http.util.EntityUtils.toString(entity, "UTF-8");
parseCategory(str);
 
-------------------------
public ArrayList<String> parseCategory(String input)
    {
        ArrayList<String> jsonlist=new ArrayList<String>();  
        
         if(input!= null){
             try {
                  
            
                   JSONArray jArray = new JSONArray(input);
                   for(int i=0;i<jArray.length();i++) 
                      {
                     JSONObject json_data = jArray.getJSONObject(i);
                    String  id = json_data.getString("id");
                    String name =json_data.getString("name");
                         jsonlist.add(id+"* "+name);
                     }
                   
        
                   return jsonlist;
              } catch (JSONException e) {
                   s=e.getMessage();
                  }
                      
             } return jsonlist;
        
    }
input: [{"id":"1","name":"Блеск"},{"id":"2","name":"Дакар"}]

Добавлено через 48 минут
если написать так, то все работает нормально:
JSONArray jArray = new JSONArray("[{'id':'1','name':'Блеск'},{'id':'2','name':'Дакар'}]");
Yandex
Объявления
25.02.2015, 19:25     Обработка Json
Ответ Создать тему
Опции темы

Текущее время: 11:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru