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

Проблемы получения JSON c Яндекса - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Последовательное выполнение Async Tasks и progressdialog http://www.cyberforum.ru/android-dev/thread882258.html
как используя asyncTask.execute(); asyncTask.get(); вывести progressdialog?
Программирование Android Можно ли писать игры на OpenGL ES под андройд ваще без Java? Можно ли писать программки под андройд полностью без джавы на чистом NDK? Может как то с использованием native activity ? http://www.cyberforum.ru/android-dev/thread882152.html
Фон музыка Программирование Android
Здрасте, делал фон музыку по этому гайду http://dajver.blogspot.com/2012/08/android-8.html в чем может быть причина, что подчеркивается метод?
Программирование Android Динамически созданные компоненты
Здравствуйте, возник вопрос. есть Fragment на него в run time добавляются компоненты, после смены fragment и последующем восстановлении,все компоненты созданные в run time исчезают. как можно сохранить/восстановить динамически созданные компоненты?
Программирование Android Как сделать AlertDialog со списком с цветными строками? http://www.cyberforum.ru/android-dev/thread881833.html
Вопрос новичка. Собственно subj. Есть список из десятка ЦВЕТОВ, которые нужно выбирать из списка. Из выпадающего списка или по нажатию кнопки. ЗЕЛЕНЫЙ, СИНИЙ, НЕБЕСНЫЙ или даже #003423 не вариант. Список программно расширяемый (не из xml-ресурсов брать). Нужно предложить выбор с цветными строками. В идеале управлять цветом и фона и шрифта строк в списке(белый на черном, черный на белом, зеленый...
Программирование Android Отобразить таблицу БД Всем доброго времени суток! Недавно столкнулся с проблемой, как отобразить таблицу БД, которая содержит в себе 4 столбца. Пытался использовать уже имеющиеся примеры отображения таблицы в ListView, но у меня выходит только отобразить один столбец! Подскажите пожалуйста, как можно решить эту проблему? Что использовать для отображения таблицы? подробнее

Показать сообщение отдельно
kievkao
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
30.05.2013, 16:49  [ТС]
Действительно))
Буду вам благодарен, haribo, если вы (и кто-то ещё, кто зайдет в эту тему) обратит внимание на сам процесс разбора данных!
Кода много, приведу ключевые моменты:

1. Я проанализировал составляющие тех данных, которые забираю и создал класс (за неимением в Java структур, как в Си), в котором буду это всё хранить:
Java
1
2
3
4
5
6
7
8
9
10
public class JSON_Struct {
    
    String          summary;
    ArrayList<Author> authors = new ArrayList<Author>();
    String          title;
    String          updated;
    int             imageCount;
    ArrayList<Entry> entries = new ArrayList<Entry>();
    Links           links = new Links();
}
Соответственно, сделал подклассы для "объёмных" элементов этой структуры:
Java
1
2
3
4
5
6
7
8
class Entry {
    String summary;
    String tags;
    String edited;
    String hideOriginal;
    String disableComments;
    Img imgs = new Img();
}
И т.д. - все созданные мною вложенные классы приводить нет смысла.

Собственно, моя ф-ция парсинга, на вход которой идёт строка, полученная мною после успешной обработки GET-запроса:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
JSON_Struct ParseJSON(String data) {
                
    JSONObject jObj;
           JSON_Struct json;
    try {
        jObj = new JSONObject(data);
        json = new JSON_Struct();
            
        json.summary    =   jObj.getString("summary");
        json.title  =   jObj.getString("title");
        json.updated    =   jObj.getString("updated");
        json.imageCount =   jObj.getInt("imageCount");
        json.links  =   getLinks(jObj.getJSONObject("links"));
        json.entries    =   getEntries(jObj.getJSONArray("entries"));
        json.authors    =   getAutors(jObj.getJSONArray("authors"));
            
    } catch (Exception e) {
        e.printStackTrace();
    }
           return json;
}
Ф-ция getEntries():
Java
1
2
3
4
5
6
7
8
9
10
11
12
ArrayList<Entry> getEntries (JSONArray array) {
    ArrayList<Entry> entries = new ArrayList<Entry>();
        
    try {
        for(int i = 0; i < array.length(); i++)
            entries.add(getOneEntry(array.getJSONObject(i)));
        
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return entries;
    }
Соответственно, в ней вызываю написанную мною ф-цию <getOneEntry()>, которая "углубляется" дальше в данные.
getEntries(), getAutors() имеют приблизительно такую же структуру.
---------------------------------------------------------------------

Вот
Если кому-то будет не лень посмотреть мой код - буду благодарен замечанием по общему построению парсинга!
Спасибо

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