.json.Como funciona
Esta ferramenta lê um JSON de exemplo e infere sua estrutura para gerar as classes ou tipos equivalentes na linguagem que você escolher: C#, C++, Go, Java, JavaScript, Kotlin, PHP, Python, Rust ou TypeScript.
A partir das chaves e dos tipos dos valores do JSON, deduz os nomes das propriedades e seus tipos (texto, número, booleano, listas). Os objetos aninhados se convertem em classes ou tipos próprios.
É uma forma rápida de criar os modelos de dados para consumir uma API sem escrevê-los à mão. Você pode colar o JSON ou carregar um arquivo; tudo é processado no seu navegador.
Exemplos
{ "id": 1, "name": "Ada" }interface RootObject {
id: number;
name: string;
}Saída em TypeScript: cada propriedade recebe o tipo inferido do valor.{ "user": { "id": 1 } }É gerada uma classe ou tipo separado para o objeto aninhado "user".Os objetos dentro de objetos produzem seus próprios modelos, ligados por uma propriedade.Casos de uso
- Criar as classes de um cliente que consome uma API a partir de uma resposta JSON de exemplo.
- Converter um JSON de configuração ou de um webhook em tipos fortes para sua linguagem.
- Poupar o trabalho repetitivo de digitar à mão modelos com muitas propriedades.
Perguntas frequentes
Como ele decide o tipo de cada propriedade?
A partir do valor do exemplo: "texto" é cadeia, 36 é número, true/false é booleano, e [ ] é uma lista do tipo de seus elementos. Por isso convém usar um JSON com valores representativos.
O que acontece com um valor null?
Um null não fornece informação de tipo, então não pode ser inferido com certeza. Se uma propriedade pode ser nula, inclua um exemplo com um valor real e ajuste a nulidade no código gerado.
Ele gera modelos a partir de um array na raiz?
Sim. Toma o primeiro elemento do array como modelo do objeto e gera o modelo desse elemento, que representa toda a lista.
Os nomes gerados respeitam a convenção da linguagem?
São derivados das chaves do JSON, adaptando-as à linguagem escolhida. Revise sempre o resultado, sobretudo se as chaves tiverem caracteres especiais ou nomes reservados.