Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/10: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Freemanasus
2 / 2 / 1
Регистрация: 25.01.2014
Сообщений: 51
1

C JSON в ListView

24.02.2014, 00:39. Просмотров 1830. Ответов 5
Метки нет (Все метки)

Здравствуйте! Есть файл data.json. Он находится в приложении. Его содержимое;
{
"name": "Антон",
"name": "Анна",
"name": "Денис",
...
}
Нужно чтобы при включении программы, программа читала файл и выводила имена в ListView. Естественно в каждой строчке по имени.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2014, 00:39
Ответы с готовыми решениями:

JSON из URL в ListView | Fragment
Здравствуйте! Есть фрагмент показывающий listView. Также есть локальный сайт...

Получить json в приложении и вывести его в listview во фрагмент
Здравствуйте, у меня такая проблема не могу разобраться как получить json в...

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

ListView. После добавления кнопки перестал быть доступен сам ListView
Кастомизировал ListView с помощью нескольких TextView. Но после того, как...

Listview вывод данных и переход по нажатию на другой Listview SQLite
Доброго извините за название темы, долго не мог сформировать название, В общем...

5
angryrobot
Командир зеленых роботов
348 / 285 / 54
Регистрация: 08.10.2013
Сообщений: 565
24.02.2014, 09:50 2
Цитата Сообщение от Freemanasus Посмотреть сообщение
Нужно чтобы
Не получается читать файл? Не получается парсить JSON ? Не понятно как заполнять ListView ? С чем конкретно у вас возникли проблемы?
0
Freemanasus
2 / 2 / 1
Регистрация: 25.01.2014
Сообщений: 51
24.02.2014, 10:00  [ТС] 3
angryrobot, парсить JSON
0
angryrobot
Командир зеленых роботов
348 / 285 / 54
Регистрация: 08.10.2013
Сообщений: 565
24.02.2014, 10:18 4
Цитата Сообщение от Freemanasus Посмотреть сообщение
парсить JSON
По моему мнению, это никакой не JSON, поскольку не соблюдается уникальность имени ключа. Если внутри файла просто массив имен, то он должен выглядеть иначе, например так:
["Антон", "Анна", "Денис"]
Тогда он может быть распознан парсером JSON'а :
Java
1
2
3
4
5
6
7
8
9
10
        String jsonData = "[\"Антон\", \"Анна\", \"Денис\"]";
        
        try {
            JSONArray jArray = new JSONArray(jsonData);
            for (int i=0 ; i < jArray.length() ; i++ ) { 
                System.out.println(jArray.get(i));
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
Код выведет все три имени в логкат:

02-24 10:15:21.074: I/System.out(6554): Антон
02-24 10:15:21.074: I/System.out(6554): Анна
02-24 10:15:21.074: I/System.out(6554): Денис
0
nikolay1982
123 / 123 / 59
Регистрация: 22.01.2014
Сообщений: 442
25.02.2014, 02:01 5
ListView заполняется через ListAdapter.
Java
1
listView1.setAdapter(adapter);
Но для начала нужно это адаптер создать.
Это очень хитро придуманно.
В качестве адаптера я использовал у себя ArrayAdapter<String>.
Нужно еще создать разметку адаптера.
Чтения файла с ресурсов.
Java
1
InputStream ins=getResources().openRawResource(R.raw.my_json);
Это значит что в каталоге raw проекта должен быть 'my_json.json'.Или другое расширение.
Как с данными json - не знаю.
Можешь попробовать:
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
32
33
34
public String[] splitStr(String s,char delim){
        int co,i,fi;
        co=0;
        Vector <String> v=new Vector<String>();
        fi=0;
        for (i=0;i<s.length();i++){
            char c=s.charAt(i);
            if (c==delim){
                String s2=s.substring(fi,i);
                fi=i+1;
                v.add(s2);
            } 
        }
        if (fi<s.length())v.add(s.substring(fi));
        String []ret=new String[v.size()];
        for (i=0;i<v.size();i++){
            ret[i]=v.elementAt(i);
        }
        return ret;
    } 
..
try{
InputStreamReader reader=new InputStreamReader(ins,"UTF-8");
LineNumberReader rds=new LineNumberReader(reader);
Vector <String> v=new Vector<String>();
String s;
while((s=rds.readLine())!=null){
    String ssplit[]=splitStr(s,',');
    for (int i=0;i<ssplit.length;i++) v.add(ssplit[i]);
}
rds.close();
}catch(Exception e){
e.printStackTrace();
}
Еще надо предусмотреть здесь удаление кавычек и других ненужных символов.
0
BumerangSP
4288 / 1410 / 463
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
26.02.2014, 00:03 6
Можно и через SimpleAdapter. Для простой разметки можно свою не делать, а взять готовую из android.R.*.
Для json есть классы JSONObject, JSONArray.

Добавлено через 12 часов 51 минуту
[Тема была объединена с предыдущей.]
0
26.02.2014, 00:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.02.2014, 00:03

Передача данных из ListView в другой Activity в ListView
Добрый день. Пытаюсь разобраться с передачей данных с ListView, но выходит что...

Данные из SQlite в ListView, обработка события ListView
Ребят, есть БД, ListView. Надо при нажатии на строчку ListView вытащить данные...

ListView, ToggleButton, SQLite, CursorAdapter. Как найти idItem в ListView, где была нажата ToggleButton?
Добрый день. Затрудняюсь понять один момент: У меня есть ListView,...


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

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

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