Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

816
Views
¿No se puede crear una cadena de más de 0x1fffffe8 caracteres en JSON.parse?

Tengo un archivo JSON que tiene datos json de un tamaño de 914 MB. Cargué el archivo con fs-extra y lo analicé. Pero cuando lo analizo, aparece un error como

no se puede crear una cadena de más de 0x1fffffe8 caracteres

A continuación se muestra el código

 const fs = require('fs-extra'); const rawdata = fs.readFileSync('src/raw.json'); const data = JSON.parse(rawdata);

Estoy ejecutando el proyecto con npm y para ejecutarlo tengo el siguiente comando en package.json .

 "scripts": { "start:dev": "cross-env NODE_OPTIONS='--max-old-space-size=4096' ts-node -r tsconfig-paths/register ./src --env=development", }
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

0x1fffffe8 es exactamente 512 MB.

Los muchos comentaristas tienen razón: te estás topando con un límite del sistema. Estoy de acuerdo con @Pointy en que lo más probable es que sea un límite de longitud de cadena de nodo. fs-extra no tiene nada que ver con el límite

En cualquier caso, tendrá que procesar ese JSON en fragmentos.

Es casi seguro que sus datos JSON masivos son una matriz en el nivel raíz. Entonces, si usa un analizador stream/SAX, puede procesar cada elemento en esa matriz raíz individualmente o en lotes, lo que tenga sentido.

ℹ️ Probablemente no desee un analizador de transmisión que SOLO admita el protocolo de transmisión JSON , ya que ese protocolo está diseñado para una transmisión de varios objetos JSON concatenados en una transmisión. Pero por lo que puedo decir, tiene un enorme objeto JSON monolítico, muy probablemente una matriz en la raíz como mencioné anteriormente.

Tiene muchas opciones de analizador. Para comenzar, estos son los que tienen un mayor uso en NPM:

  • https://github.com/creationix/jsonparse#readme

  • https://github.com/ndjson/ndjson.js

  • https://github.com/uhop/stream-json

  • https://www.npmjs.com/package/JSONStream (arriba, pero archivado)

  • https://gitlab.com/philbooth/bfj (#2, pero también archivado)

si el rendimiento es crítico

Si sabe que el formato JSON de origen es muy regular, por ejemplo, cada registro en la matriz raíz tiene N líneas de largo, lo más eficiente podría ser leer las líneas sin formato a través de un lector almacenado en búfer, tomar cada N líneas (ajustando para la apertura líneas para la matriz raíz en la parte superior) y JSON.parse . analizarlos individualmente (después de eliminar la coma que separa las entradas de la matriz raíz. Solo una idea en bruto. ¡Nunca lo he hecho!

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!