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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
Freemanasus
2 / 2 / 1
Регистрация: 25.01.2014
Сообщений: 51
#1

C JSON в ListView - Android

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

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

Android Создать JSON
Неверный JSON Android
простенький json Android
Json в массив Android
Android JSON Android
Android JSON
JSON в SQLite Android
Android Парсинг json
Android Получить json
Android Парсинг JSON
Парсер JSON Android
Получить json в приложении и вывести его в listview во фрагмент Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
angryrobot
Командир зеленых роботов
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 564
24.02.2014, 09:50     C JSON в ListView #2
Цитата Сообщение от Freemanasus Посмотреть сообщение
Нужно чтобы
Не получается читать файл? Не получается парсить JSON ? Не понятно как заполнять ListView ? С чем конкретно у вас возникли проблемы?
Freemanasus
2 / 2 / 1
Регистрация: 25.01.2014
Сообщений: 51
24.02.2014, 10:00  [ТС]     C JSON в ListView #3
angryrobot, парсить JSON
angryrobot
Командир зеленых роботов
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 564
24.02.2014, 10:18     C JSON в ListView #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): Денис
nikolay1982
92 / 92 / 38
Регистрация: 22.01.2014
Сообщений: 310
25.02.2014, 02:01     C JSON в ListView #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();
}
Еще надо предусмотреть здесь удаление кавычек и других ненужных символов.
BumerangSP
4284 / 1406 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
26.02.2014, 00:03     C JSON в ListView #6
Можно и через SimpleAdapter. Для простой разметки можно свою не делать, а взять готовую из android.R.*.
Для json есть классы JSONObject, JSONArray.

Добавлено через 12 часов 51 минуту
[Тема была объединена с предыдущей.]
Yandex
Объявления
26.02.2014, 00:03     C JSON в ListView
Ответ Создать тему
Опции темы

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