JSON para SQL
Converta um array JSON num CREATE TABLE com tipos inferidos e INSERTs em lote, para PostgreSQL, MySQL, SQLite ou SQL Server.
JSON para SQL roda inteiramente no seu navegador. Seus dados são convertidos no seu dispositivo e nunca enviados.
Abrir o conversor CSV para SQL
Sobre JSON para SQL
JSON para SQL pega um array de objetos — uma resposta de API, uma exportação, um arquivo de teste — e produz as duas sentenças que o colocam num banco: um CREATE TABLE cujos tipos de coluna são inferidos de todos os valores de cada coluna, e INSERTs agrupados em listas VALUES multilinhas. A inferência é feita direito: inteiros além de 32 bits viram BIGINT, strings em formato ISO viram TIMESTAMP, colunas mistas degradam com segurança para TEXT, e cada tipo canônico sai na grafia do dialeto: BOOLEAN chega como TINYINT(1) no MySQL e BIT no SQL Server. Os detalhes que quebram scripts manuais são exatamente o alvo: identificadores com aspas por dialeto, aspas simples dobradas para O’Brien sobreviver, chaves ausentes como NULL e objetos aninhados serializados como texto JSON.
Recursos
- CREATE TABLE com tipos inferidos de todas as linhas
- INSERT multilinha com tamanho de lote configurável
- Dialetos PostgreSQL, MySQL, SQLite e SQL Server
- Identificadores com aspas: palavras reservadas seguras
- Escape de valores: aspas dobradas, NULLs explícitos
- Chaves ausentes como NULL; aninhados como texto JSON
Como usar JSON para SQL
- Cole um array JSON de objetos
- Nomeie a tabela e escolha o dialeto
- Ajuste as linhas por INSERT se preciso
- Copie o SQL: os tipos são listados antes para revisão
Exemplo
Entrada
[{"id":1,"name":"O'Brien","active":true}]
Saída
CREATE TABLE "users" ("id" INTEGER, "name" TEXT, "active" BOOLEAN);
INSERT INTO "users" ("id", "name", "active") VALUES (1, 'O''Brien', TRUE);
A aspa dobrada de O’’Brien é o que mantém o script válido.
Erros comuns e solução de problemas
- Uma coluna numérica saiu como TEXT. — Algum valor daquela coluna é string: "42" com aspas, uma string vazia ou um N/A. A inferência examina todas as linhas e degrada para TEXT em qualquer conflito.
- O script falha numa coluna chamada order ou user. — Não deveria: os identificadores levam aspas por dialeto exatamente para isso. Se falhar, confira se o dialeto bate com o banco: crases para MySQL, colchetes para SQL Server.
- Datas importadas como texto puro. — Só as formas ISO 8601 (2024-01-15, com hora opcional) inferem como TIMESTAMP. Formatos locais como 15/01/2024 são ambíguos e ficam TEXT de propósito.
Perguntas frequentes
- Como os tipos de coluna são inferidos do JSON?
- Cada valor da coluna vota: inteiros dão INTEGER (ou BIGINT além de 32 bits), qualquer decimal a torna DOUBLE PRECISION, true/false dão BOOLEAN, strings com data ISO dão TIMESTAMP e qualquer conflito termina em TEXT. Todas as linhas são examinadas.
- O que muda entre os dialetos SQL?
- As aspas de identificadores (aspas duplas, crases, colchetes), a grafia dos tipos (BOOLEAN contra TINYINT(1) contra BIT), os literais booleanos (TRUE contra 1) e o prefixo N que o SQL Server quer em texto Unicode.
- O que acontece com objetos de chaves diferentes?
- As colunas são a união das chaves de todas as linhas, na ordem de aparição; linhas sem uma chave inserem NULL ali. É como dados heterogêneos de API costumam precisar pousar numa tabela.
- O script gerado está pronto para produção?
- Está pronto para importar: aspas seguras e tipos sensatos. Uma tabela de produção merece ainda chave primária, NOT NULL e índices, que nenhuma inferência adivinha dos dados.
Ferramentas relacionadas
- CSV para SQL — Gere comandos INSERT e CREATE TABLE a partir de um CSV.
- JSON para CSV — Converta um array de objetos JSON planos para CSV.
- Formatador de JSON — Embeleze, minifique e valide JSON com a localização dos erros.
- JSON para TypeScript — Gere interfaces de TypeScript a partir de uma amostra JSON.
- JSON Flatten — Achate JSON aninhado em chaves com notação de ponto ou desfaça de volta, no seu navegador.
- Ordenar Chaves JSON — Ordene recursivamente as chaves de um objeto JSON de A→Z ou Z→A, no navegador.
Todas as ferramentas de ArrayKit