A way to convert your .jsonlz4 to .json valid for 2026?
Hola, he necesitado una forma de convertir un archivo .jsonlz4 a .json de forma online o que ponga en riesgo lo menos posible mi PC (evitando descargar y ejecutar, largos… (leer más)
Hola, he necesitado una forma de convertir un archivo .jsonlz4 a .json de forma online o que ponga en riesgo lo menos posible mi PC (evitando descargar y ejecutar, largos código que requieren de herramientas de terceros como Python, etc.), y he encontrado un sitio web que no me ha servido porque mi archivo .jsonlz4 era lo suficientemente grande como para dejar la página web congelada teniendo que esperar una larga cantidad de tiempo), este post es simplemente para ayudar a la comunidad que busca una solución a esto en 2026 (hay una versión de 2015 en el foro que utiliza la inferfaz IFilePicker que ya no funciona en las versiones actuales de Firefox):
- (solución antigua, 2015): [https://support.mozilla.org/es/questi.../1071533]
- (solución online, para archivos pequeños): https://convert.guru/es/convertidor-de-jsonlz4
- (solución mía propio, 2026):
- Escribe "about:config" en la barra de direcciones de Firefox.
- Busca "devtools.chrome.enabled".
- Asegúrate de que esté en "true" (doble clic para cambiar si es necesario).
- Código que debes pegar en la consola de Firefox (Shift+Ctrl+J):
--- // (Bourdait, 2026) Script de Firefox para convertir archivos .jsonlz4 a .json (descomprimido) desde consola de FF (async () => {
// 1. Verificar configuración necesaria
if (!Services.prefs.getBoolPref("devtools.chrome.enabled", false)) {
console.warn("ADVERTENCIA: 'devtools.chrome.enabled' es falso. El selector de archivos podría fallar."); console.warn("Ve a about:config y pon devtools.chrome.enabled en true si tienes problemas.");
}
let filePath = null;
// 2. Selector de Archivos (Intento XPCOM con fallback)
try {
// Intento utilizar el filepicker nativo (aún funciona en consola privilegiada en muchas versiones) const fp = Cc["@mozilla.org/filepicker;1"]?.createInstance(Ci.nsIFilePicker); if (fp) { // Nota: En versiones muy recientes (FireFox 125+), a veces requiere window.browsingContext try { fp.init(window.browsingContext || window, "Seleccionar archivo jsonlz4", Ci.nsIFilePicker.modeOpen); } catch (e) { fp.init(window, "Seleccionar archivo jsonlz4", Ci.nsIFilePicker.modeOpen); } fp.appendFilter("Archivos jsonlz4", "*.jsonlz4"); fp.appendFilter("Todos los archivos", "*.*"); // Esperar la selección const result = await new Promise(resolve => fp.open(resolve)); if (result === Ci.nsIFilePicker.returnOK && fp.file) { filePath = fp.file.path; } }
} catch (e) {
console.error("El selector XPCOM falló:", e.message); // Fallback manual filePath = prompt("El selector automático no funcionó. Pega la RUTA COMPLETA del archivo .jsonlz4:", ""); if (!filePath || !filePath.endsWith(".jsonlz4")) return;
}
if (!filePath) return;
const outputFile = filePath.replace(".jsonlz4", "_convertido.json");
try {
console.log("Leyendo y descomprimiendo:", filePath); // 3. LECTURA Y DESCOMPRESIÓN CORRECTA // IOUtils es global, NO se importa. // El truco está en la opción { decompress: true } const content = await IOUtils.readUTF8(filePath, { decompress: true }); console.log("Guardando archivo JSON:", outputFile); // 4. ESCRITURA DEL ARCHIVO await IOUtils.writeUTF8(outputFile, content); console.log("Archivo guardado en:", outputFile); alert("Conversión completa.\nArchivo guardado en:\n" + outputFile); // Opcional: Abrir el resultado en una nueva pestaña const fileObj = Services.io.newFile(Services.io.newFile(outputFile)); // Corrección de ruta // Método más seguro para abrir archivo local en Firefox moderno: const url = Services.io.newFileURI(Services.io.newFile(outputFile)).spec; window.open(url, "_blank");
} catch (err) {
console.error("Error crítico:", err); alert("Error al procesar el archivo:\n" + err.message + "\n\nAsegúrate de que la ruta es correcta y el archivo no está corrupto.");
}
})(); ---
NOTA: Aunque el script muestre algún error comprueba el archivo, a veces aparece algún error pero ha convertido el archivo perfectamente.
La única intención de compartir el script es ayudar a otros y hacer crecer la comunidad.
Un saludo.