Conversor de JSON para código
Transforme uma amostra de JSON em interfaces TypeScript, structs Go, structs serde do Rust, um esquema Zod ou JSON Schema.
Conversor de JSON para código — Cole uma amostra representativa de JSON e obtenha na hora código fortemente tipado na sua linguagem de destino: interfaces TypeScript, structs Go com tags json, structs serde do Rust, um esquema Zod ou JSON Schema draft-07. Os tipos são inferidos diretamente dos dados: objetos aninhados viram tipos nomeados, arrays inferem o tipo do seu elemento e campos que não estão presentes em todos os itens de um array são marcados como opcionais. Tudo roda no seu navegador, então o seu JSON nunca é enviado.
O que é Conversor de JSON para código?
JSON para código é um gerador de tipos gratuito que funciona no navegador: ele lê uma amostra de JSON e escreve o modelo de dados correspondente na linguagem que você escolher. Escolha um destino no menu Converter para (interface TypeScript, struct Go, struct serde do Rust, esquema Zod ou JSON Schema) e defina um Nome do tipo raiz para rotular o tipo de nível superior. O motor de inferência percorre o JSON: strings, números, booleanos e null são mapeados para tipos nativos, objetos aninhados são elevados a seus próprios tipos nomeados, arrays adotam o tipo do seu elemento e chaves ausentes em alguns elementos de um array passam a ser opcionais. Desenvolvedores de frontend e backend usam a ferramenta para gerar DTOs a partir de respostas de API, esboçar esquemas de validação e manter os tipos do cliente e do servidor sincronizados sem escrever código repetitivo à mão.
Como usar Conversor de JSON para código
- Cole ou digite uma amostra representativa de JSON na caixa de entrada, ou clique em Exemplo para carregar um.
- Abra as Configurações e escolha um destino em Converter para: TypeScript, Go, Rust, Zod ou JSON Schema.
- Defina o Nome do tipo raiz para controlar o nome da interface, do struct ou do esquema de nível superior.
- Leia o código gerado no painel de saída; ele é atualizado automaticamente à medida que você edita o JSON ou altera as opções.
- Veja a estatística Tipos para saber quantos tipos nomeados foram inferidos e clique em Copiar para levar o resultado.
Exemplos
Objeto para interface TypeScript
Entrada
{ "id": 1, "name": "Ada", "active": true }Saída
export interface Root {
id: number;
name: string;
active: boolean;
}Objeto aninhado para struct Go
Entrada
{ "user": { "age": 30 } }Saída
type User struct {
Age float64 `json:"age"`
}
type Root struct {
User User `json:"user"`
}Array com uma chave ausente para um esquema Zod
Cole um array como [{"a":1,"b":2},{"a":3}] e mude Converter para para Zod. Como o segundo elemento não tem b, o gerador marca b como .optional() no z.object inferido, de modo que o esquema aceita ambos os formatos.
Perguntas frequentes
- Meu JSON é enviado para algum lugar?
- Não. A análise e a geração de código rodam inteiramente no seu navegador usando um motor de inferência integrado. Seu JSON nunca sai do seu dispositivo e a ferramenta continua funcionando offline.
- Quais destinos são suportados?
- Interfaces TypeScript, structs Go (com tags json e omitempty para campos opcionais), structs serde do Rust (com os derives Serialize/Deserialize e rename quando um campo é renomeado), esquemas Zod e JSON Schema draft-07. A ferramenta só gera o que consegue inferir fielmente da sua amostra.
- Como os campos opcionais são definidos?
- A partir da sua amostra. Quando um array contém objetos e uma chave está ausente em alguns deles, essa chave é inferida como opcional. Fora isso, toda chave presente na amostra é tratada como obrigatória.
- E quanto a números, null e tipos mistos?
- Números são mapeados para o tipo de ponto flutuante da linguagem (number, float64, f64), null é mapeado para um tipo anulável ou de valor conforme o destino, e um campo que contém tipos diferentes entre amostras recorre a um tipo permissivo (unknown, interface{}, serde_json::Value) em vez de adivinhar.
- Por que minha saída está vazia ou mostra um erro?
- A entrada precisa ser JSON válido. Se a análise falhar, a ferramenta mostra o erro com a linha e a coluna quando disponíveis; corrija o ponto indicado e o código é regerado na hora.
Ferramentas relacionadas
Codificar / decodificar Base32 / Base58
Codifique texto em Base32 (RFC 4648) ou Base58 (o alfabeto do Bitcoin) e decodifique qualquer um de volta para texto, totalmente seguro em UTF-8 e inteiramente no seu navegador.
Codificar / decodificar Base64
Codifique ou decodifique Base64 (compatível com UTF-8) com alfabeto URL-safe, preenchimento opcional, quebra de linha 64/76, contagem de bytes e caracteres em tempo real e vista de bytes em hex ou binário.
Conversor de maiúsculas/minúsculas e contador
Converta texto entre UPPERCASE, camelCase, PascalCase, snake_case, CONSTANT_CASE, kebab-case, dot.case e mais, e conte caracteres, palavras e linhas.
Formatador e minificador de código
Embeleze ou minifique HTML, CSS e JavaScript instantaneamente no seu navegador, com indentação de 2 espaços, 4 espaços ou tabulação e compressão de JavaScript com Terser.