Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Gor_Then
0 / 0 / 0
Регистрация: 08.03.2018
Сообщений: 11
1

Получить мега большой JSON файл

02.08.2018, 23:46. Просмотров 460. Ответов 3
Метки нет (Все метки)

Добрый день ,у меня JSON в 30 мб ,вот такой: http://edi.md/GetAssortimentListForOfficeSupply.json

Использую вот такой метод:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
URL url_ = new URL ("http://edi.md/GetAssortimentListForOfficeSupply.json");
HttpURLConnection url = (HttpURLConnection) url_.openConnection();
        try {
            InputStream in2 = url.getInputStream();
 
            Scanner scanner2 = new Scanner(in2);
            scanner2.useDelimiter("\\A");
 
            boolean hasInput = scanner2.hasNext();
            if (hasInput) {
                return scanner2.next();
            }
        }  finally {
            url.disconnect();
        }
Благодаря
Java
1
android:largeHeap="true"
я получаю этот JSON за 4 минуты и 30 секунд , без этого , после 1 минуты с чем-то приложение падает.Поэтому использовать
Java
1
android:largeHeap="true"
не решение для меня.
Много читал в интернете, вариантов много ,но они были предоставлены давно, к примеру этот предоставлен в 2016 ,и я пробовал у себя и не смог его реализовать.
Мне нужно как можно сильнее ускорить получение данного файла и также быстро парсить его.
Посоветуете пожалуйста каким способом могу ускорить получение данного JSON файла?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.08.2018, 23:46
Ответы с готовыми решениями:

Как посылать в POST-запросе Мега-JSON?
Имею такой json: { "name": "name", "cnp": 123456789, "chornumber": 4, ...

Прочитать большой JSON
Есть очень большой JSON по ссылке...

Слишком большой JSON?
На этапе получения JSON приходит обрубок без четверти окончания всех данных и в логе жалоба что не...

Десерилизация большой json-строки
есть оочень большая json строка. Структура примерно такая -success: true, -rgInventory...

Как получить из строки JSON токен используя JSON.NET?
Доброго времени суток, Господа. Поскажите пожалуйста. Я никогда не работал с JSON. Вот тут решил...

3
ExFau$t
966 / 765 / 229
Регистрация: 08.05.2012
Сообщений: 3,661
03.08.2018, 00:14 2
Retrofit2 + rxjava2.
0
demixdn
312 / 256 / 80
Регистрация: 31.10.2016
Сообщений: 619
03.08.2018, 15:39 3
Gor_Then, просто скачиваете этот файл как обычный файл и кладете в файловую систему. Тут можно использовать OkHttp. И обязательно считывать файл не построчно, а пачками байт. Или использовать метод из FileUtils из CommonsIO

Далее вам нужен Json Parser. Тут я не могу вам посоветовать Gson, он медленный. У меня был файл на 10 мб, и я тестировал Gson и LoganSquare. LoganSquare по скорости парсинга победил примерно в 2 раза. НО либа устарела, ее не поддерживают. В обсуждениях предлагают переехать на Moshi, при этом обязательно с использованием кодогенерации.
0
Gor_Then
0 / 0 / 0
Регистрация: 08.03.2018
Сообщений: 11
06.08.2018, 18:20  [ТС] 4
Цитата Сообщение от ExFau$t Посмотреть сообщение
Retrofit2 + rxjava2.
Легче всего получилось сделать да и скорости удобно ,получил весь файл приблизительно за 10 секунд.Спасибо огромное!
0
06.08.2018, 18:20
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.08.2018, 18:20

Как обработать большой сложный json?
Не понимаю как сделать чтобы циклом получать данные типо $json = json_decode($string); while(){...

Можно ли Json параметры записать с большой буквы
у меня есть джейсон такого вида , { "access_token" :...

Файл: Скопировать текст в другой текстовый файл файл, но чётные строки должны быть с большой буквы...
Создать текстовый файл. Скопировать текст в другой текстовый файл файл, но чётные строки должны...


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

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

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