Converta dados JSON planos e SQL localmente
Converta linhas JSON planas para um subconjunto SQL documentado de PostgreSQL ou SQLite, ou importe CREATE TABLE e INSERT aceitos como JSON.
Espaço de trabalho da ferramenta
Conversor JSON / SQL
JavaScript é necessário para processar arquivos localmente no navegador. Nenhum dado é enviado ao servidor.
Converta linhas JSON planas em SQL ou importe para JSON um subconjunto SQL publicado. A conversão começa quando você escolhe a ação.
A entrada permanece neste navegador. Os arquivos são lidos localmente e nunca são enviados.
Esta ferramenta implementa um subconjunto documentado, não um mecanismo completo de banco de dados. Referência: PostgreSQL {version}; UTF8 e standard_conforming_strings ativados.
JSON deve conter linhas planas de objetos com valores escalares. SQL aceita uma tabela, tipos escalares publicados e instruções INSERT com listas completas de colunas.
SQL é gerado como texto usando o perfil selecionado. Nenhum SQL é executado.
Limites: entrada 1.000.000 unidades UTF-16 / 4.000.000 bytes; arquivo 4.000.000 bytes; linhas 10.000; colunas 200; posições 75.000.
O perfil também limita instruções SQL, tokens, trabalho de análise, saída, diagnósticos e duração. Os limites restantes da entrada aparecem abaixo.
O exemplo é uma amostra local. Ao carregá-lo, substitui a entrada após sua ação explícita.
JavaScript é necessário para processar arquivos localmente no navegador. Nenhum dado é enviado ao servidor.
Mensagens e diagnósticos
Quando disponíveis, as mensagens indicam instrução SQL, tupla, linha, coluna da tabela ou posição física no editor. Detalhes internos desconhecidos são ocultados.
Alguns detalhes foram omitidos para respeitar o limite de exibição.
Resumo do resultado
- Perfil do dialeto
- Tabela
- Linhas
- Colunas
- Instruções SQL
- Tipos observados e SQL
| Coluna | Tipo observado ou de origem | Tipo SQL | Tipo SQL declarado | Aceita NULL |
|---|
A prévia somente leitura tem limite. Copiar e baixar usam o resultado completo.
A prévia é limitada a {maxPreviewCodeUnits} unidades UTF-16. A saída completa pode ser copiada ou baixada.
Copiar manualmente
A área de transferência não está disponível. Selecione e copie abaixo o resultado completo.
Converta linhas JSON planas para SQL
Escolha JSON para SQL, cole um array de objetos JSON (ou um único objeto), selecione PostgreSQL ou SQLite e pressione Gerar SQL. A ferramenta usa a união de chaves de todas as linhas e as escreve pela ordem da primeira ocorrência. Cada objeto gera uma linha. Os valores das células precisam ser strings, números finitos, booleanos ou null; arrays e objetos aninhados são rejeitados.
[
{"id": 1, "name": "Ada", "active": true},
{"id": 2, "name": "Grace", "active": false}
]
Um null explícito é um valor. Uma propriedade ausente é diferente e, por padrão, causa rejeição. A opção Converter ausentes em NULL preenche a célula ausente, mas perde a diferença entre ausência e null explícito. Colunas com famílias incompatíveis, como número em uma linha e objeto em outra, são rejeitadas. Uma coluna que contém apenas null não permite inferir um tipo seguro e gera um aviso.
O perfil de referência PostgreSQL gera TEXT, BIGINT, NUMERIC e BOOLEAN. SQLite gera TEXT, INTEGER, REAL e BOOLEAN; SQLite armazena booleanos como inteiros e REAL pode arredondar decimais. CREATE TABLE vem incluído por padrão e pode ser removido; o SQL gerado ainda contém instruções INSERT. Identificadores seguem as regras do dialeto, incluindo palavras reservadas e o limite de 63 bytes. O gerador cita literais string. Nenhum SQL é executado nem enviado a um banco de dados.
Importe o subconjunto SQL aceito como JSON
Escolha SQL para JSON, cole SQL ou carregue um arquivo .sql local, selecione o mesmo perfil de dialeto, escolha 2 ou 4 espaços e pressione Converter para JSON. O parser aceita no máximo um CREATE TABLE opcional seguido por instruções INSERT INTO ... (lista completa de colunas) VALUES (...). Ele lê somente valores literais em VALUES; não avalia SQL.
PostgreSQL aceita TEXT, BIGINT, NUMERIC e BOOLEAN. Seu perfil de referência exige UTF8 e standard_conforming_strings ativado; apóstrofos nos literais são representados em duplicidade. SQLite aceita TEXT, INTEGER, REAL e BOOLEAN. Tipos não aceitos, consultas como SELECT, parâmetros, defaults, expressões, dumps de esquema, várias tabelas e construções fora da gramática publicada são rejeitados. Não é um importador SQL geral e não se conecta aos bancos de dados.
Com CREATE TABLE, a ordem e os nomes das colunas definem as chaves dos objetos JSON. Sem CREATE, a primeira lista de colunas INSERT define essa ordem. Listas posteriores podem reordenar as mesmas colunas, mas não podem adicionar ou omitir colunas. Cada tupla precisa ter a quantidade correta de valores e todas as instruções devem indicar a mesma tabela. Uma instrução inválida rejeita toda a entrada; nenhuma linha parcial é retornada. A saída é sempre um array JSON. CREATE TABLE sem INSERT produz [] e um aviso. Nomes da tabela, tipos declarados e comentários SQL não são exportados ao JSON; portanto, o esquema e os comentários não são preservados e não há garantia geral de ida e volta ao SQL original.
Precisão numérica e armazenamento
Lexemas numéricos JSON e SQL são verificados pelo perfil local antes da saída. Números que perderiam precisão, excederiam o intervalo finito aceito ou tivessem mais de 128 caracteres são rejeitados. O zero negativo é normalizado para zero com um aviso. O armazenamento SQLite REAL pode arredondar decimais, e SQLite representa booleanos como inteiros. Considere essas diferenças se outro banco ou consumidor ler o texto exportado. O comportamento de strings do PostgreSQL é descrito para a configuração exigida standard_conforming_strings; a ferramenta não verifica a configuração de um servidor ativo.
Saída completa, prévia e limites
O editor e os arquivos selecionados permanecem neste navegador. Os arquivos são lidos localmente como UTF-8; o modo JSON aceita .json e o modo SQL aceita .sql. A conversão é explícita e usa um Web Worker local cancelável. SQL não é executado, nenhuma conexão com banco de dados é aberta e o texto não aparece em URLs ou armazenamento do navegador.
A prévia somente leitura é limitada a 20.000 unidades UTF-16. Copiar e baixar usam a saída completa. Se a área de transferência falhar, uma ação explícita mostra o texto completo para cópia manual. Os downloads contêm SQL ou um array JSON; não exportam esquema relacional nem comentários SQL.
O perfil limita a entrada a 1.000.000 unidades UTF-16 e 4.000.000 bytes UTF-8; cada arquivo a 4.000.000 bytes; profundidade JSON a 200 e nós a 100.000; linhas a 10.000; colunas a 200 e posições de células a 75.000; instruções SQL a 1.001 e tokens a 400.000; identificadores a 63 bytes UTF-8; saída a 2.000.000 unidades UTF-16 e 8.000.000 bytes; trabalho a 4.000.000 unidades e 15.000 ms; e diagnósticos retidos a 100. Detalhes de colunas e diagnósticos também são limitados. As cotas valem em conjunto, então uma entrada pode atingir um limite antes de outro.
Alterar a entrada, modo, opções, exemplo ou arquivo apaga o resultado anterior. Limpar mantém a direção atual e redefine as opções desse modo. Erros, cancelamento, timeout e limites não geram saída parcial.