Чтение больших файлов 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