Geração de tipos

JSON para classeuma amostra, cinco linguagens

Veja os dois registros do exemplo e escolha a linguagem e o nome da classe raiz.

JSON para classe

Entrada JSON

O JSON é analisado neste navegador; a amostra não é enviada nem armazenada.

Modelo gerado · Rust

Opções do modelo

Todos os objetos da lista são examinados. Campos ausentes ou nulos ficam opcionais; confira tipos desconhecidos.

2 declarações · 2 tipos opcionais

JSON para classe ajuda quando você tem uma resposta de API e precisa iniciar um modelo tipado. Uma lista de objetos parecidos mostra campos que só aparecem depois do primeiro registro.

A saída é um rascunho para revisão. A amostra não prova regras de negócio, campos futuros, precisão de valores monetários ou configurações de serialização do projeto.

Por que usar JSON para classe?

Reunir os campos de todos os registros

JSON para classe percorre cada objeto da lista principal. Um campo presente só no segundo registro continua no modelo e vira opcional quando falta nos demais.

Dois cartões de objeto com campos diferentes se unem em um cartão de modelo; um círculo vazado identifica o campo opcional.

Trocar a linguagem sem trocar os dados

O mesmo JSON local rende structs Rust, classes C#, Dart e PHP ou case classes Scala. O arquivo baixado usa a extensão correspondente à escolha.

Um cartão de dados se divide em vários caminhos que levam a cartões de código com estruturas diferentes.

Mostrar ao gerador as variações reais

01

Inclua registros diferentes

Coloque vários objetos da mesma resposta em uma lista principal. Chaves que aparecem em apenas alguns viram opcionais; listas aninhadas também consideram todos os elementos visíveis.

02

Leia o alcance de cada saída

Rust usa Serde, C# usa atributos System.Text.Json e Dart inclui fromJson/toJson. PHP e Scala geram declarações que ainda precisam de hidratação ou codec no projeto.

03

Exporte apenas o resultado atual

A geração automática espera 350 ms após a edição. Desligue-a para mostrar o botão ou use Ctrl/Cmd+Enter. Mudanças bloqueiam cópia e download até a nova geração terminar.

O que cada linguagem recebe

Mapeamento de chaves em Rust e C#

O struct Rust usa serde rename, Option e Vec. C# usa JsonPropertyName para manter as chaves originais e propriedades anuláveis quando os exemplos mostram ausência.

Métodos explícitos em Dart

O gerador de modelo Dart cria campos tipados e fromJson/toJson para objetos e listas aninhados. Teste a saída no seu ambiente Flutter ou Dart.

Declarações PHP e Scala

PHP 8 recebe propriedades tipadas e comentários para elementos de listas. Uma Scala case class usa Option e List; a leitura do JSON ainda exige um codec.

Inferência sem arredondar antes

JSON para classe lê a forma original dos números antes de escolher tipos. Inteiros enormes e decimais usam tipos amplos em vez de aparentar uma precisão que não foi demonstrada.

O que a amostra não revela

Apenas cinco destinos disponíveis
Rust, C#, Dart, PHP e Scala são as opções implementadas. TypeScript, Go, Java, Python e Swift têm ferramentas próprias; botões de linguagens indisponíveis não aparecem.
Sem Schema ou busca por URL
Regras required, limites e referências de JSON Schema ou OpenAPI não são aplicados. A ferramenta não busca URLs nem infere semântica de datas, enums ou dinheiro.
Confira números grandes
Inteiros fora do intervalo de 64 bits com sinal e decimais recebem tipos amplos. A fidelidade na leitura e escrita também depende do serializador do projeto.
Declarações não fazem hidratação sozinhas
json_decode não preenche automaticamente propriedades PHP; Scala precisa de codec e Rust de dependências Serde. O código gerado não é executado aqui.
JSON estrito e limites fixos
Comentários, chaves repetidas, vírgulas finais e listas principais com tipos misturados são rejeitados. Limites: 500.000 caracteres, profundidade 100, 50.000 nós e 1.000.000 caracteres de saída.

Perguntas sobre JSON para classe

O código gerado é compilado pela ferramenta?

Não. A ferramenta produz código-fonte, mas não compila. Valide o arquivo baixado com o compilador e as dependências da linguagem escolhida.

Como os campos ausentes e nulos são tratados?

Todos os objetos da lista principal são examinados. Se um campo falta ou aparece como null, ele fica opcional; apenas null não revela um tipo concreto.

O que acontece com identificadores inválidos?

A chave vira um identificador seguro e seu nome JSON original é registrado na saída quando a linguagem oferece mapeamento. Revise o código gerado antes de usar.

Posso definir o nome da classe raiz?

Sim. O padrão é Root. Informe um nome ASCII iniciado por maiúscula para atualizar as declarações e o nome do arquivo.

Os dados JSON são enviados a um servidor?

Não. O JSON colado fica no navegador e não é enviado a um servidor. Também não há busca de URL nem salvamento persistente da amostra.

Faltou algum formato de dado?

Criar um rascunho com JSON para classe

Use JSON para classe com registros reais variados, confira os campos opcionais e os nomes e teste o arquivo da linguagem escolhida no seu projeto.