Читайте ответ REST API, размещая очень большие данные - PullRequest
0 голосов
/ 08 января 2020

Я звоню в конечную точку API REST, которая содержит очень большой объем данных. Количество данных слишком велико, и моя вкладка chrome также дает сбой (она отображает данные в течение короткого времени и загружает еще больше данных, в результате чего вкладка обрабатывается sh). Даже почтальону не удается получить данные, и вместо этого он возвращает только код 200 OK без отображения тела ответа.

Я пытаюсь написать программу java, которая будет использовать ответ от API. Есть ли способ потреблять ответ, не используя много памяти?

Пожалуйста, дайте мне знать, если вопрос не ясен. Спасибо !!

Ответы [ 2 ]

1 голос
/ 10 января 2020

Если данные действительно настолько велики, то лучше разбить задачу:

  1. Загрузка полных данных через обычный http-клиент на диск
  2. Выполнение массовой обработки с использованием некоторого потокового подхода, аналогичного SAX-разбор для XML: JAVA - лучший подход для разбора огромного (очень большого) JSON файла

При таком разделении вы не будете иметь дело с возможной сетью ошибки во время обработки и сохранят согласованность данных.

1 голос
/ 10 января 2020

Можно использовать JSON потоковый синтаксический анализатор как API потоковой передачи Jackson (https://github.com/FasterXML/jackson-docs/wiki/JacksonStreamingApi), например, код см. https://javarevisited.blogspot.com/2015/03/parsing-large-json-files-using-jackson.html

Для JS есть https://github.com/DonutEspresso/big-json

...