Converter linhas em array JSON com escape correto
Cole cinco linhas, entre elas um caminho do Windows e uma frase com aspas, e receba um array válido de 5 valores: C:\data\file.txt sai como "C:\\data\\file.txt", sem nada para consertar à mão. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Texto
- alpha A quoted "value" C:\data\file.txt last
- Valores
- alpha, A quoted "value", C:\data\file.txt, , last
- Contagem de linhas
- 5
Ele aceita finais de linha do Unix, Windows e Mac clássico, preserva os espaços de cada valor e mantém linhas vazias intencionais. Uma única quebra no final é considerada o encerramento natural do texto, e não mais um item vazio.
Cole um valor de texto em cada linha
Comece com texto simples no qual cada linha represente um valor. Listas de compras, flags de recursos, nomes de arquivos copiados do terminal, rótulos de uma planilha e identificadores recebidos por e-mail são entradas adequadas. O conversor não separa por vírgulas, ponto e vírgula ou espaços; portanto, a pontuação dentro da linha continua no valor.
Ele também não remove espaços no começo ou no fim, pois eles podem ter significado em testes, dados de largura fixa e rótulos exatos. Limites LF do Unix, CRLF do Windows e CR do Mac clássico geram o mesmo resultado. Linhas vazias internas viram strings vazias.
Quando o texto termina com uma quebra, o último separador é ignorado para evitar um elemento vazio inesperado. Envie pelo menos um caractere; uma entrada totalmente vazia é rejeitada em vez de produzir um valor inventado.
Confira os limites antes de usar o array
Revise a saída quando a origem for uma planilha, terminal ou editor, pois a ferramenta preserva o conteúdo em vez de adivinhar a intenção. Espaços que parecem inofensivos podem criar strings diferentes, e uma linha vazia interna vira intencionalmente uma string vazia. Já uma quebra final indica apenas o fim do documento.
Essa regra estável evita mudanças acidentais de tipo.
Casos de uso
Montar uma lista de configuração
Cole ambientes, flags ou valores permitidos e receba um array válido para um arquivo de configuração.
Perguntas frequentes
Quanto custa?
A versão no navegador roda localmente de graça.
O que acontece com linhas vazias?
Linhas vazias internas viram strings vazias. Uma quebra final é ignorada para não criar um valor fantasma.
Os espaços de cada linha são removidos?
Não. Espaços iniciais e finais são preservados porque podem fazer parte do valor desejado.
O que acontece com aspas e barras invertidas dentro de uma linha?
Elas são escapadas pelas regras padrão: uma aspa dupla ganha uma barra invertida antes, uma barra invertida é duplicada e tabulações ou outros caracteres de controle viram sequências válidas. Assim, A quoted "value" continua sendo um único valor válido.
Uma quebra de linha no final cria um valor vazio?
Não. Uma única quebra de linha final é tratada como o fim natural do texto colado, então a quebra que os editores costumam acrescentar não gera um valor vazio inesperado. Linhas vazias no meio viram valores vazios.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
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)Exemplo de requisição
{
"text": "alpha\nA quoted \"value\"\nC:\\data\\file.txt"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.lines_to_json_array",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Transforme uma lista colada em um array JSON válido sem corrigir aspas ou barras invertidas à mão. O conversor trata cada linha como string, aplica o escape de JSON e retorna a saída pronta para código, os valores interpretados e a contagem de linhas.
Deixe o escape de JSON proteger os dados
O texto Unicode permanece legível: nomes, acentos, emojis e outros sistemas de escrita dispensam substituições improvisadas. Como o processamento é determinístico e não usa serviços externos, a mesma entrada sempre gera a mesma saída. Cada linha é serializada pelas regras padrão de strings JSON, e não apenas cercada por aspas com uma substituição simples. Isso faz diferença quando o texto contém aspas duplas, barras invertidas, tabulações ou outros caracteres de controle. As aspas recebem uma barra, barras literais são duplicadas e controles usam sequências válidas de JSON.
Confira os limites antes de usar o array
Se precisar remover espaços, eliminar vazios, deduplicar, ordenar ou interpretar números e booleanos como primitivas JSON, faça essas transformações explicitamente antes ou depois. Todo membro produzido é uma string: uma linha `42` vira a string `"42"`, não o número 42, e `true` continua sendo texto. Em automações, compare `line_count` com a quantidade esperada e consuma `values`; para copiar e colar, use diretamente o conteúdo formatado de `result`.
Casos de integração
Preparar dados de uma API
Converta identificadores copiados de um relatório em um array JSON pronto para o corpo da solicitação.
Criar fixtures confiáveis
Transforme arquivos, rótulos e casos extremos em dados determinísticos, preservando espaços e vazios relevantes.
Perguntas técnicas
Números e booleanos viram primitivas JSON?
Não. Cada linha vira uma string JSON; `42`, `true` e `null` continuam sendo valores de texto entre aspas.
Como aspas e barras invertidas são tratadas?
A serialização JSON padrão faz o escape correto delas, de tabulações e de outros caracteres de controle.