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
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.
Mais ferramentas de JSON
Formatador de JSON — Embeleze, minifique e valide JSON com a localização dos erros.