Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
 
19 / 5 / 2
Регистрация: 28.09.2014
Сообщений: 88
1

XML или JSON

31.07.2016, 20:53. Просмотров 422. Ответов 5
Метки нет (Все метки)


Имеется приложение, при первом запуске которого создается бд и производится ее заполнение из файлов. Встает вопрос, что эффективней: парсить JSON или парсить XML. Сторонних библиотек использовать не планирую, только JSONObject и XmlResourceParser. И можно ли сделать заполнение еще эффективней, если да, то как?
На данный момент данные записываются в БД около 7 секунд.
Заранее огромное спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.07.2016, 20:53
Ответы с готовыми решениями:

PHP + JSON или XML
Здравствуйте. Я работаю с интернет-магазином. У моего сайта есть партнерская программа на другом...

Json или XML парсер по url
<Translation code="200" lang="en-ru"> <text> Текст </text> </Translation> или ...

XML или JSON парсер для STM32F407
Здравствуйте! Посоветуйте, пожалуйста, парсер xml или json форматов(нужен именно древовидный...

Как лучше парсить, из xml или json?
Вообщем посоветуйте чем лучше парсить? Есть 2 ссылки из которых нужно парсить: ...

__________________
Помогаю в написании курсовых работ и дипломов здесь.
Записывайтесь на профессиональные курсы Android-разработчиков
5
2881 / 2293 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
31.07.2016, 21:04 2
хрустальный шар подсказывает что было бы круто видеть код, что-бы можно было ответить "можно ли сделать заполнение еще эффективней"
0
19 / 5 / 2
Регистрация: 28.09.2014
Сообщений: 88
31.07.2016, 21:08  [ТС] 3
Паблито, конечно, сглупил, что сразу не привязал. Вот так ведется парсинг:
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
private Round fillDB(int round) {
        Resources resources = context.getResources();
        XmlResourceParser xml = resources.getXml(roundsXML.get(round));
 
        try {
            int eventType = xml.getEventType();
            while(eventType != XmlPullParser.END_DOCUMENT) {
                if ((eventType == XmlPullParser.START_TAG) && (xml.getName().equals("record"))) {
 
                    db.addQuestion(new Question(round + 1, xml.getAttributeValue(0), xml.getAttributeValue(1),
                            xml.getAttributeValue(2), 0));
                }
 
                eventType = xml.next();
            }
 
            new CorrectionDB(context, null, round + 1).execute();
 
            rounds = db.getRounds();
 
            return rounds.get(round);
        } catch (XmlPullParserException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            xml.close();
        }
 
        return new Round(round, 0, 0);
    }
А тут заполнение в БД:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public void addQuestion(Question question) {
        SQLiteDatabase db = this.getWritableDatabase();
 
        String selectQuery = "SELECT COUNT(*) FROM " + TABLE_QUESTIONS + " WHERE " + KEY_ROUND + " = " + question.getRound();
 
        Cursor cursor = db.rawQuery(selectQuery, null);
        if(cursor.moveToFirst())
            if(cursor.getInt(0) >= 12)
                return;
 
        ContentValues values = new ContentValues();
 
        values.put(KEY_ROUND, question.getRound());
        values.put(KEY_QUESTION, question.getQuestion());
        values.put(KEY_ANSWERS, question.getAnswers());
        values.put(KEY_COMMENT, question.getComment());
        values.put(KEY_STATUS, question.getStatus());
        values.put(KEY_TIME, question.getTime());
 
        db.insert(TABLE_QUESTIONS, null, values);
        db.close();
    }
0
425 / 406 / 67
Регистрация: 06.10.2012
Сообщений: 1,748
01.08.2016, 08:25 4
MrScrat, XML проигрывает JSON по всем статьям, его использование в современных приложениях я не рекомендую. Это ж надо же было на моде к HTML изобрести столь неудобный формат...
0
2881 / 2293 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
01.08.2016, 09:49 5
я к коду сильно не присматривался, но навскидку там жесть
нет транзакции, каждую итерацию база открывается/закрывается
1
17 / 16 / 3
Регистрация: 20.05.2015
Сообщений: 115
01.08.2016, 14:05 6
XML удобнее только для глаз, а json более быстрое считывание, это во первых... Во вторых если вы считываете данные сервера, то xml сожрет больше трафику (если данных много, то трафику уйдет намного больше, до 2 раз даже может. Может и больше. Точно не знаю). И лучше бы вам открыть базу для записи и внести все данные в нее, а потом только закрывать, а то реально, 100 раз туда обратно гонять не кайф... лучше откройте базу и передайте в функцию добавления базу и добавляйте, после цикла просто закроете если надо...
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.08.2016, 14:05

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь или здесь.

Обработка json или xml ответа из Яндекс метрики
Все токены ID и пароли знаю. Когда вбиваю url с данными получаю ответ от яндекс метрики со...

JSON или XML: что более оптимизировано для парсинга
У какого языка более быстрый стандартный парсер (в глубину) ?

Передача данных на сервер в формате xml или json и обратно
Привет всем! Я начинающий программист и делаю свой интернет-магазин, но на сколько мне известно во...

Boost.Asio. Как получить ответ от сервера в формате json или xml
Все привет, столкнулся с проблемой. Допустим, с помощью boost.asio и OpenSSL я делаю GET запрос...


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

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

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