Gerar tipos a partir de JSON
Gere declarações TypeScript, Java 17+ ou C# 10+ a partir de um valor ou até 100 valores de exemplo.
- Funciona no navegador
- Sem envio
- Verifique antes de transferir
Os dados de entrada ficam neste separador, sem envio ou gravação automática. As contagens agregadas de utilização e os diagnósticos gerais de processamento são opcionais e enviados apenas com consentimento, sem conteúdo nem nomes de ficheiros. Limpar ou fechar elimina os dados; guarde primeiro os resultados necessários.
Formatos e limites
Gere declarações TypeScript, Java 17+ ou C# 10+ a partir de um valor ou até 100 valores de exemplo. No modelo inferido, um campo em falta é diferente de um null explícito. O TypeScript usa tipos opcionais e uniões; em Java e C# os indicadores de presença têm de ser preenchidos por quem chama. Não é gerado nenhum desserializador. O nome raiz é ASCII até 64 carateres; os nomes de campos até 256; as listas vazias ficam por determinar. O nome raiz não pode ser um identificador reservado da linguagem ou da framework; em C# também é rejeitado System, para evitar o espaço de nomes da framework. Os alias dos membros reservam o nome do tipo que os contém e os dos indicadores de presença; os nomes JSON originais ficam nos atributos e no relatório do modelo.
Só UTF-8. Entrada até 1 MiB; XML até 100.000 unidades UTF-16; profundidade até 64; JSON até 20.000 nós. JSONL até 16 MiB, 100.000 registos e 1 MiB por valor. Saída até 32 MiB. Consultas: 3 s; outras tarefas: 10 s; processo local cancelável. A memória nativa do XSD fica até 64 MiB; isto não é toda a memória do processo nem do DOM.
Como usar
- Escolher origem e modo
Escolha TypeScript, Java ou C#, indique o nome do tipo raiz e selecione uma amostra ou um array de amostras. Use registos variados e representativos para revelar campos em falta, anuláveis e heterogéneos.
- Configurar parâmetros
O exemplo carregado, com dois registos, gera a interface Example: id:number e name:string são obrigatórios; nickname?:null e active?:boolean são opcionais, porque cada um falta num dos registos.
- Verificar e transferir
Descarregue a declaração de origem e o inferred-model.json. Antes de a integrar, verifique a diferença entre opcional e null explícito e o mapeamento dos nomes dos campos. A ferramenta gera declarações; não valida dados futuros nem gera um desserializador.
Formatos e limites
Porque é que esta entrada é rejeitada ou o resultado fica vazio?
O modo de array de amostras precisa de 1 a 100 valores. Os nomes raiz começam por uma letra ASCII e só podem conter letras, dígitos ou sublinhado, com no máximo 64 carateres. Um array vazio não dá nenhuma indicação sobre o tipo dos elementos.
Que perfil de análise e que limites se aplicam?
É uma inferência a partir de amostras e não uma garantia de esquema. Os resultados em Java 17+ e C# 10+ podem precisar de indicadores de presença geridos por quem os utiliza; leia os comentários. Se o analisador numérico rejeitar a precisão de identificadores maiores, escreva-os como strings JSON entre aspas.
As entradas ou os ficheiros referenciados são enviados para um servidor?
A análise é feita localmente, num worker do navegador. Os URL presentes na entrada não vão buscar documentos remotos. Forneça explicitamente, como ficheiros locais, as dependências de esquema suportadas; guarde o seu texto de origem em separado e descarregue os resultados antes de fechar a página.