Gerar tipos a partir de JSON

Gera declarações em TypeScript, Java 17+ ou C# 10+ a partir de um valor ou de até 100 amostras.

  • Funciona no navegador
  • Sem upload
  • Confira antes de baixar

Os dados de entrada ficam nesta aba, sem envio nem salvamento automático. As contagens agregadas de uso e os diagnósticos gerais de processamento são opcionais e só são enviados com o seu consentimento, sem conteúdo nem nomes de arquivos. Limpar ou fechar apaga os dados; salve antes os resultados de que precisar.

Formatos e limites

Gera declarações em TypeScript, Java 17+ ou C# 10+ a partir de um valor ou de até 100 amostras. No modelo inferido, ausência e null explícito são diferentes. O TS usa tipos opcionais e uniões; em Java e C#, quem chama precisa preencher os indicadores de presença. Nenhum desserializador é gerado. O nome raiz tem até 64 caracteres ASCII e os campos até 256. Arrays vazios continuam com tipo desconhecido. O nome raiz não pode ser um identificador reservado da linguagem ou do framework. O C# também rejeita System, para não colidir com o namespace do framework. Os aliases dos membros reservam o nome do tipo que os contém e os nomes dos indicadores de presença. Os nomes JSON originais ficam nos atributos e no relatório do modelo.

Somente UTF-8. Entrada de até 1 MiB; XML de até 100.000 unidades UTF-16; profundidade de até 64; JSON de até 20.000 nós. JSONL de até 16 MiB, 100.000 registros e 1 MiB por valor. Saída de até 32 MiB. Consultas: 3 s; outras tarefas: 10 s; o worker pode ser cancelado. A memória nativa do XSD é de até 64 MiB, o que não é toda a memória do worker nem do DOM.

Como usar

  1. Escolher origem e modo

    Escolha TypeScript, Java ou C#, dê um nome ao tipo raiz e selecione uma amostra única ou um array de amostras. Use registros variados e representativos para revelar campos ausentes, nulos e heterogêneos.

  2. Configurar parâmetros

    O exemplo carregado, com dois registros, gera a interface Example: id:number e name:string são obrigatórios; nickname?:null e active?:boolean são opcionais, porque cada um está ausente em um dos registros.

  3. Verificar e baixar

    Baixe a declaração do código-fonte e o inferred-model.json. Confira a diferença entre campo opcional e null explícito e o mapeamento dos nomes dos campos antes de integrar. A ferramenta gera declarações; ela não valida dados futuros nem gera um desserializador.

Formatos e limites

Por que a entrada é rejeitada ou o resultado fica vazio?

O modo de array de amostras exige de 1 a 100 valores. O nome da raiz começa com uma letra ASCII e só pode ter letras, dígitos ou sublinhado, com no máximo 64 caracteres. Um array vazio não dá nenhuma evidência do tipo dos itens.

Qual perfil de análise e quais limites se aplicam?

É uma inferência a partir de amostras, não uma garantia de esquema. As saídas em Java 17+ e C# 10+ podem precisar de indicadores de presença gerenciados por quem chama; leia os comentários gerados. Identificadores maiores devem ser strings JSON entre aspas se o analisador numérico rejeitar a precisão deles.

As entradas ou os arquivos referenciados são enviados a um servidor?

A análise acontece localmente, em um worker do navegador. URLs presentes na entrada não baixam documentos remotos. Informe as dependências de esquema compatíveis como arquivos locais, guarde a sua fonte à parte e baixe os resultados antes de fechar a página.