Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
Алексей228
0 / 0 / 0
Регистрация: 15.05.2014
Сообщений: 12
1

Обработка Json

25.02.2015, 17:22. Просмотров 793. Ответов 6
Метки нет (Все метки)

Всем доброго времени суток! Подскажите, пожалуйста, что в моем коде не так:
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"}]
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2015, 17:22
Ответы с готовыми решениями:

Ошибка - Errororg.json.JSONExceprion: Value bd.json of type java.lang.String cannot be converted to JSONObject
Здравствуйте! Есть база данных bd.json, которая находится в проекте в папке...

JSON
В продолжение моей борьбы с json, поделитесь полезными ссылками для изучения,...

простенький json
на сервере имеется код: if ($id&gt;0) {&quot;data&quot;:} else {&quot;data&quot;:} Запрос с...

Массив из json
С сервера приходит json в таком формате Array А как сделать массив...

Получить json
Здравствуйте. Мне нужно получить следующий json ответ с моего сайта для...

6
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
25.02.2015, 17:30 2
Цитата Сообщение от Алексей228 Посмотреть сообщение
Перед этим input прогоняется через этот кусок кода:
а зачем?
0
Алексей228
0 / 0 / 0
Регистрация: 15.05.2014
Сообщений: 12
25.02.2015, 17:55  [ТС] 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(), которая была описана выше.
0
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
25.02.2015, 18:01 4
Алексей228, мне кажется в этом проблема. Попробуйте так:

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

JSON parser
Добрый вечер! Прошу помочь с проблемой, делаю парсинг .JSON файла , но не могу...

C JSON в ListView
Здравствуйте! Есть файл data.json. Он находится в приложении. Его содержимое;...

Парсинг JSON
Привет знатокам своего дела, у меня уже крик души! Какой час не выходит...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru