Convertir líneas en un array JSON con escape correcto
Pegue cinco líneas, entre ellas una ruta de Windows y una frase con comillas, y obtendrá un array válido de 5 valores: C:\data\file.txt sale como "C:\\data\\file.txt", sin nada que corregir a mano. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- alpha A quoted "value" C:\data\file.txt last
- Valores
- alpha, A quoted "value", C:\data\file.txt, , last
- Número de líneas
- 5
Admite finales de línea de Unix, Windows y Mac clásico, conserva los espacios de cada valor y mantiene las líneas vacías intencionadas. Un único salto final se interpreta como cierre natural del texto, no como otro elemento vacío.
Pegue un valor de texto en cada línea
Empiece con texto sencillo donde cada línea represente un valor. Puede usar una lista de compras, indicadores de funciones, nombres de archivo copiados de una terminal, etiquetas de una hoja de cálculo o identificadores recibidos por correo. El conversor no divide por comas, punto y coma ni espacios, de modo que la puntuación de cada línea permanece en el valor.
Tampoco recorta espacios iniciales o finales: pueden ser significativos en pruebas, datos de ancho fijo o etiquetas exactas. Los límites LF de Unix, CRLF de Windows y CR de Mac clásico generan el mismo resultado. Las líneas vacías internas se convierten en cadenas vacías.
Si el texto pegado termina con un salto, se ignora ese último separador para evitar un elemento vacío inesperado. Debe enviar al menos un carácter; una entrada totalmente vacía se rechaza en vez de inventar un valor silenciosamente.
Revise los límites antes de usar el array
Compruebe la salida cuando el origen sea una hoja de cálculo, terminal o editor, porque la herramienta conserva el contenido y no intenta adivinar la intención. Espacios aparentemente inocuos pueden crear cadenas distintas, y una línea vacía interna se convierte deliberadamente en una cadena vacía. En cambio, un salto final solo marca el fin del documento.
Esta regla estable evita cambios de tipo accidentales.
Qué puede hacer con ella
Crear una lista de configuración
Pegue entornos, indicadores o valores permitidos y obtenga un array válido para un archivo de configuración.
Generar pruebas fiables
Convierta archivos, etiquetas y casos límite en datos deterministas conservando espacios y entradas vacías relevantes.
Preguntas frecuentes
¿Cuánto cuesta?
La versión del navegador se ejecuta localmente gratis.
¿Qué ocurre con las líneas vacías?
Las líneas vacías internas se vuelven cadenas vacías. Se ignora un salto final para que no añada un valor fantasma.
¿Se recortan los espacios de cada línea?
No. Los espacios iniciales y finales se conservan porque pueden formar parte del valor previsto.
¿Qué pasa con las comillas y las barras invertidas de una línea?
Se escapan con las reglas estándar: una comilla doble recibe una barra invertida delante, una barra invertida se duplica y las tabulaciones u otros caracteres de control pasan a secuencias válidas. Así, A quoted "value" sigue siendo un único valor válido.
¿Un salto de línea al final añade un valor vacío?
No. Un único salto de línea final se toma como el final natural del texto pegado, de modo que el salto que suelen añadir los editores no crea un valor vacío inesperado. Las líneas vacías intermedias sí se convierten en valores vacíos.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/str/lines-to-json-array \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"alpha\nA quoted \"value\"\nC:\\data\\file.txt"}'const res = await fetch("https://api.kit.forhosting.com/str/lines-to-json-array", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "alpha\nA quoted \"value\"\nC:\\data\\file.txt"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/lines-to-json-array",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "alpha\nA quoted \"value\"\nC:\\data\\file.txt"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/lines-to-json-array", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"alpha\\nA quoted \\"value\\"\\nC:\\\\data\\\\file.txt"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"alpha\nA quoted \"value\"\nC:\\data\\file.txt"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/lines-to-json-array", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"text": "alpha\nA quoted \"value\"\nC:\\data\\file.txt"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.lines_to_json_array",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Transforme una lista pegada en un array JSON válido sin corregir comillas ni barras invertidas a mano. El conversor trata cada línea como una cadena, aplica el escape de JSON y devuelve tanto el resultado listo para código como los valores interpretados y el número de líneas.
Deje que JSON proteja los datos
La diferencia importa cuando el texto contiene comillas dobles, barras invertidas, tabulaciones u otros caracteres de control. El texto Unicode sigue siendo legible: nombres, tildes, emoji y otras escrituras no necesitan sustituciones improvisadas. Como no intervienen servicios externos, una entrada idéntica siempre produce la misma salida. Cada línea se serializa mediante las reglas estándar de cadenas JSON, no mediante un simple añadido de comillas. Las comillas reciben una barra, las barras literales se duplican y los controles usan secuencias válidas de JSON. El campo `result` contiene un documento JSON formateado, listo para copiar en código fuente, configuración, una solicitud API o una prueba. El campo `values` ofrece el mismo array como datos estructurados, útil para clientes automáticos que no deben analizar otra cadena JSON. `line_count` facilita las comprobaciones.
Revise los límites antes de usar el array
Si necesita eliminar espacios, descartar vacíos, quitar duplicados, ordenar o interpretar números y booleanos como primitivas JSON, haga esas transformaciones de forma explícita antes o después. Todos los miembros producidos son cadenas: una línea con `42` se convierte en la cadena `"42"`, no en el número 42, y `true` sigue siendo texto. Para automatización, compare `line_count` con los registros esperados y consuma `values`; para copiar y pegar, utilice directamente `result`.
Casos de integración
Preparar datos para una API
Convierta identificadores de un informe en un array JSON listo para el cuerpo de una solicitud, sin escapes rotos.
Preguntas técnicas
¿Los números y booleanos se convierten en primitivas JSON?
No. Cada línea se convierte en una cadena JSON; `42`, `true` y `null` permanecen como texto entre comillas.
¿Cómo se tratan las comillas y barras invertidas?
La serialización JSON estándar las escapa correctamente, igual que las tabulaciones y demás caracteres de control.