Есть ли способ проанализировать JSON и вызвать события на месте?
Прямо сейчас я использую SuperObject для анализа моих данных JSON (при получении их с сервера), а затем выгружаю их в набор данных клиента. С сервера могут приходить очень большие объемы данных. В настоящее время я должен сначала проанализировать эти данные JSON в ISuperObject
, а затем повторите это, чтобы заполнить набор данных клиента.
Мне интересно, есть ли способ обойти двойную загрузку, вызывая события, когда обрабатываются необработанные данные. Например, как только синтаксический анализатор обнаружит начало нового объекта, он вызовет событие, которое я затем подготовил бы этот соответствующий объект на месте. Или когда он анализирует массив, я могу подготовить новую запись набора данных.
Причина в том, что с очень большими наборами данных это занимает несколько секунд, и мне приходится ждать, пока он завершит анализ, прежде чем я смогу его использовать. Если я получу данные во время их анализа, я сразу же смогу использовать эти данные на месте.
Я уже использую нумерацию страниц в пределах 200-500 записей на страницу (на миллионах записей) со многими столбцами. Нумерация страниц по-прежнему не удовлетворяет потребности в полной мере.
Как я могу сделать это, используя SuperObject или любой другой известный механизм, без необходимости писать свой полный анализатор?
1 ответ
Написание собственного парсера не так сложно. Я написал один для коннектора mongodb, который я написал: https://github.com/stijnsanders/TMongoWire/blob/master/bsonUtils.pas Вы можете легко адаптировать его для запуска описанных вами событий.