Saltar para o conteúdo
4all.tools

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.

JSON para SQL

SQL é gerado como texto usando o perfil selecionado. Nenhum SQL é executado.

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.

    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.