Что такое файл NDJSON?

NDJSON — JSON Lines

Что это такое?

NDJSON хранит по одному полноценному объекту JSON в каждой строке, без обрамляющих скобок и без запятых между строками. Каждую строку можно читать независимо от остальных.

Это решающее преимущество при работе с большими объёмами данных: обычный JSON-файл нужно полностью загрузить в память, прежде чем с ним можно будет работать. NDJSON же читается построчно — так можно обработать файл на 50 ГБ на машине, где всего 8 ГБ оперативной памяти.

История и происхождение

Этот подход утвердился сам собой вместе с ростом популярности потоковой обработки данных, когда объёмы файлов сделали полную загрузку в память неосуществимой.

Он стал фактическим стандартом для журналов приложений и выгрузок из объёмных баз данных.

Чем он удобен

Формат обрабатывается потоково, строка за строкой, независимо от общего объёма файла.

Повреждение одной строки не делает непригодным весь остальной файл — в отличие от обычного JSON, где всего одна лишняя запятая делает файл целиком нечитаемым.

Ограничения и недостатки

Строго говоря, это не валидный JSON: обычный парсер его не примет.

У формата нет официальной спецификации, из-за чего существуют разные его варианты.

Советы по использованию

NDJSON хорошо подходит для журналов, массовых выгрузок и потоков данных.

Чтобы открыть его в табличном редакторе, конвертируйте файл в CSV — при условии, что структура данных плоская.

Конвертируйте ваш NDJSON за секунды на наших защищённых серверах во Франции.

Конвертировать NDJSON