Cookies de estadística y publicidad
Usamos cookies de estadística y de publicidad, y ambas van a Google. Si rechazas, para ti no cambia nada visible.Ir a la página de privacidad
Aquí puedes convertir NDJSON a INI gratis y sin cuenta: suelta el archivo arriba y en un par de segundos tienes el resultado listo para descargar. La conversión ocurre en tu propio navegador, así que el archivo no se sube nunca. Funciona igual en Windows, macOS y Linux que en iPhone y Android, y sigue funcionando aunque cortes la conexión.
Hasta 100 archivos a la vez. Mezclar formatos no es problema.
Se convierten uno tras otro y vuelven juntos en un ZIP.
NDJSON a INI
El desajuste es total y conviene nombrarlo antes que nada. Un archivo INI es un conjunto de secciones con nombre, cada una con líneas planas de clave y valor: la descripción de una cosa, normalmente la configuración de una aplicación. Un archivo JSON delimitado por saltos de línea es una secuencia de registros sin nombre, sin un orden que signifique nada y sin longitud fija.
No existe una representación que contente a los dos. Lo que hace la conversión es usar el único nombre que tiene un registro dentro de una lista, que es su posición: la primera línea sale como `[0]`, la segunda como `[1]`, y así. Es fiel, no pierde nada, y produce un archivo cuyos nombres de sección no significan absolutamente nada.
Si los registros son de verdad varias configuraciones —una por servidor, una por entorno, una por cliente—, cambiarles el nombre de `[0]` y `[1]` a los nombres que esas cosas tienen convierte la salida en un archivo utilizable, y ahí se acaba el trabajo. Las claves de debajo ya están bien.
Si los registros son datos y no configuración, ningún cambio de nombre ayuda, y las secciones numeradas son la conversión diciéndotelo. Cien secciones nombradas por su posición no son un archivo de configuración: son una tabla escrita con la notación equivocada. Lo que eso pide es un CSV, un JSON o una base de datos, y cada uno de los tres está a una conversión del mismo origen.
Esto pilla a la gente, así que hay que ser explícito. Un archivo con exactamente una línea sigue siendo una lista de uno, y lo que sale es una sección `[0]` con todos los campos de ese registro dentro. No es el INI limpio que darían esos mismos datos por otro camino.
El arreglo está en cambiar el formato de origen, no en editar la salida. Guarda esa línea con extensión `.json` y usa la conversión de JSON a INI: allí las claves de primer nivel del registro se convierten en los encabezados de sección, los valores sueltos se escriben encima, y el archivo se parece a algo que habría escrito una persona. Son los mismos datos por otra puerta y son diez segundos.
Un INI admite secciones y nada dentro de las secciones. En este par ese único nivel se lo lleva el índice del registro, así que cada campo —incluida cualquier anidación que trajera— tiene que vivir dentro del nombre de la clave.
Un registro con un objeto de servidor que contenga un puerto produce una línea que dice `servidor.puerto` dentro de la sección numerada. No se descarta nada y el camino se conserva, pero dos registros con la misma estructura anidada ya no comparten nada estructuralmente: son dos secciones cuyas claves se escriben igual por casualidad. Un analizador que reconstruya la anidación a partir de las claves con puntos la reconstruirá por sección, que suele ser lo que quieres y nunca es algo que dar por hecho.
Un registro que lleve una lista de servidores permitidos produce claves llamadas 0, 1 y 2 bajo el camino de ese campo. Sumado a las secciones numeradas, la salida puede acabar con una línea que diga `servidores.0` dentro de una sección llamada `[2]`, que es legible y feo a partes iguales.
Los analizadores de INI que admiten listas suelen esperar una sola línea con valores separados por comas, y unos pocos esperan la misma clave repetida. Ninguna de las dos cosas es lo que sale de aquí. Si la aplicación tiene una convención, unir la lista en una cadena en el origen antes de convertir produce la línea que su analizador lee de forma nativa, y hacerlo después significa editar cada grupo a mano.
Un `true` de JSON se escribe como `true`, un número con sus cifras, una cadena tal cual, y un nulo como la clave con nada detrás del signo igual. La mayoría de los lectores de INI devuelven eso como una cadena vacía y no como un valor sin definir, así que comprueba cómo trata el tuyo esa diferencia antes de apoyarte en ella.
Las comillas aparecen solo donde el valor no volvería igual sin ellas: alrededor de uno con un espacio en un extremo, de uno que ya empieza y acaba con comillas, y de uno que contiene un salto de línea. El resto se escribe desnudo, para que el archivo siga pareciendo un archivo que ha escrito una persona, que es lo que espera quien lo vaya a editar después.
Un valor de INI es una línea, y el formato no define ningún escape para un valor que contenga un salto. Aquí se escribe como una barra invertida y una `n` dentro de las comillas, y merece contarse por qué: sin ese escape, el salto se escribía tal cual y el texto que venía después se leía como una instrucción nueva. Cuando esa segunda línea parecía un encabezado entre corchetes, aparecía una sección que no estaba en ningún registro, y —lo que convierte esto en algo más que un valor estropeado— la siguiente clave legítima acababa capturada dentro de esa sección inventada.
La otra mitad de la decisión es igual de concreta y es muy de Windows. Un valor solo se desescapa cuando venía entrecomillado, porque el INI es un formato de Windows y lo más común dentro de uno es una ruta sin comillas: desescapar siempre habría leído la línea escrita a mano `ruta=C:\nuevo` como `C:` seguido de un salto de línea, es decir, una corrupción silenciosa nueva introducida por el arreglo de otra. Aun así, un certificado, una clave o un guion incrustado siguen perteneciendo a su propio archivo, con el INI apuntando a la ruta, que es lo que espera casi cualquier aplicación que lea INI.
El INI admite comentarios —una línea que empieza por punto y coma o por almohadilla— y el lector de este sitio honra los dos en el sentido contrario. El JSON no los admite, así que el archivo convertido llega sin ninguno.
Y como el motivo de producir un INI es casi siempre que una persona lo va a leer o a editar, escribir esas líneas es la primera edición útil. Qué secciones dependen del entorno, qué valor tiene que coincidir con otro de otro sitio y cuál ignora la aplicación: nada de eso podía viajar en el origen y todo eso es para lo que sirve el formato de destino.
Cada valor de un archivo INI es texto. Si 8080 es un número, si `true` es un booleano y si 007 conserva sus ceros lo decide el programa que lo lee: `configparser` de Python lo hace explícito con `getint` y `getboolean`, y acepta además `yes`, `on` y `1` como verdadero.
Hay una segunda decisión que también se toma al leer y que en español se nota más: la codificación. El archivo sale como texto UTF-8, y una aplicación de gestión antigua que lea sus INI como ANSI enseñará las eñes y las tildes de un nombre de sección o de un valor como caracteres extraños. Si el destino es un programa de esa generación, comprueba una eñe antes de convertir la carpeta entera.
La regla honesta para parar en este par: si la salida tiene más de un puñado de secciones numeradas y no puedes darle a cada una un nombre real, la conversión ha respondido a una pregunta distinta de la que hiciste. Un INI describe una cosa, y una lista de registros no es una cosa.
Las alternativas desde el mismo archivo están todas a un clic y todas son mejores para ese caso. CSV o un libro de cálculo si va a mirarlo una persona; SQL o Parquet si va a consultarlo una máquina; y TOML si lo que querías de verdad era una lista de registros dentro de un archivo de configuración, porque tiene una construcción de tabla repetida que al INI sencillamente le falta.
La conversión es JavaScript corriente en esta pestaña. No se sube nada, no hay cuenta ni cola, y el límite gratuito son 100 MB por archivo, una cifra que ningún archivo de configuración ha alcanzado jamás.
Importa más de lo que sugiere el tamaño. Los volcados de configuración llevan cadenas de conexión, extremos de API, nombres de máquinas internas y, más a menudo de lo que nadie admite, una credencial que tenía que haber sido una variable de entorno. Mandar uno a la infraestructura de un desconocido para que le quite las llaves sería un mal negocio a cualquier precio.
| NDJSON | INI | |
|---|---|---|
| Nombre completo | Newline-Delimited JSON | Configuración INI |
| Extensión de archivo | .ndjson, .jsonl | .ini, .cfg, .conf |
| Tipo de medio | application/x-ndjson | text/plain |
| Publicado por primera vez | 2013 | 1985 |
| Licencia | Estándar abierto | Estándar abierto |
| Situación actual | Vigente | Antiguo, aún se lee en todas partes |
| Se abre en el navegador | Ningún navegador | Ningún navegador |
| Considerado en su lugar | JSON, CSV | TOML, YAML |
Los programas de siempre no coinciden: NDJSON se abre en jq y pandas, y INI en Notepad y Visual Studio Code, así que quien reciba el resultado necesita alguno del segundo grupo.
Los dos apuntan a trabajos distintos: NDJSON a mover datos entre programas y la transmisión y INI a la edición. Conviene sopesarlo antes, porque la razón de ser de uno suele ser la razón por la que el otro resulta incómodo.
INI es de 1985. Notepad y Visual Studio Code lo leen.
INI se publicó en 1985 y NDJSON en 2013. El más antiguo suele ser el archivo más seguro para entregar; el más reciente hace lo mismo con menos bytes.
No. Esta conversión ocurre por completo en tu navegador, así que el archivo no sale de tu dispositivo. Puedes comprobarlo tú: abre la pestaña de red de las herramientas de desarrollo y convierte algo. Verás la propia página y las peticiones de estadística y publicidad con las que se paga este servicio, y ni una sola que lleve tu archivo.
Sí. Sin cuenta, sin marca de agua y sin cupo diario que se gaste: se ejecuta en tu propio equipo, así que puedes volver tantas veces como quieras. El navegador procesa archivos de hasta 100 MB, 100 a la vez.
NDJSON y INI describen el contenido de maneras radicalmente distintas. La conversión es por tanto una reconstrucción y no una copia: fiel, pero no idéntica byte a byte. INI no admite anidamiento. Todo lo que baje de un nivel se aplana en claves separadas por puntos.
Para la conversión no: ocurre en el navegador que ya tienes abierto. Para abrir el resultado necesitas después el programa con el que tu dispositivo muestra normalmente INI Configuration.