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

Como usar JSON para SQL

  1. Cole um array JSON de objetos
  2. Nomeie a tabela e escolha o dialeto
  3. Ajuste as linhas por INSERT se preciso
  4. 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

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

Todas as ferramentas de ArrayKit