Чтение больших файлов JSON линий в Javascript / реагировать

Я получил большой файл (300 МБ), который сохраняется в jsonlines. Означает, что файл содержит тысячи объектов JavaScript, разделенных переносами строк.

К сожалению, я не знаю, как работать с таким файлом. Может ли кто-нибудь дать мне какое-то краткое введение о том, как обрабатывать такие файлы?

2 ответа

Решение

Не используйте React/ не обрабатывайте его на Клиенте. В Node.JS вы можете читать такие файлы напрямую (fs.readFileSync(...).split('\n').map((row) => JSON.parse(row))). Если они больше, используйте читатель построчно и JSON.parse(), Ищите в npm для этого.

Вам лучше справиться с этим на сервере. Отправка такого количества данных клиенту определенно вызовет некоторые сбои в работе клиента. Эффективный способ обработки таких данных - использование потоков. Таким образом, вы можете сделать что-то вроде этого на сервере:

const fs = require('fs');
const http = require('http');
const server = http.createServer((req,res) => {
    const readStream = fs.createReadStream('yourLargeFile.txt'); // create read stream
    readStream.pipe(res); // pass data to client as a writeable stream
}
server.listen(PORT, IP);

Подробнее читайте здесь: Документация по Node Stream

Другие вопросы по тегам