jeerjmin
@jeerjmin

Как подгружать огромный json api через pagination?

Имеется API чуть ли не всех городов мира в .json формате.
[
  {
    "id": 707860,
    "name": "Hurzuf",
    "country": "UA",
    "coord": {
      "lon": 34.283333,
      "lat": 44.549999
    }
  },
  {
    "id": 519188,
    "name": "Novinki",
    "country": "RU",
    "coord": {
      "lon": 37.666668,
      "lat": 55.683334
    } 
},
....
]


Ранее настраивал единовременную подгрузку, тк были не большие данные.
Но здесь это не пройдет, нужно делать запрос к следующим данным, только при нажатии загрузки новой страницы городов.

Как это сделать?
Поделитесь примером такой реализации?
  • Вопрос задан
  • 1420 просмотров
Пригласить эксперта
Ответы на вопрос 2
@vaajnur
битриксоид
дели json на чанки и выводи в пагинации
Ответ написан
@Interface
Если файл не очень большой (до десятков мегабайт) - можно считать его в памямть, получится обычный массив, его можно отдавать обычным slice.

Если файл очень большой (сотни мегабайт и более) - думаю оптимальнее всего будет считать его через какую-нибудь либу типа https://github.com/dominictarr/JSONStream и засунуть в БД. И обращаться уже к ней.

Обратите внимание, что файл может не уместиться в ОЗУ - тогда нужно делать поточно (да и не только тогда).

Т.е. не считываем по кусочкам весь файл -> склеиваем -> кладем в БД,
а считываем кусок -> кладем кусок в БД (и следим чтобы память не текла)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы