JSON para TypeScript
JSON to TypeScript
Infere interfaces ou tipos TypeScript a partir de um exemplo de JSON, mesclando campos opcionais e de união.
Cole uma resposta JSON e receba interfaces TypeScript para ela. A inferência mescla todos os registros da amostra em vez de ler o primeiro, então um campo que só aparece em alguns deles sai como opcional em vez de obrigatório — que é a diferença entre um tipo que compila e um tipo que é verdadeiro.
JSON de exemplo
Solte um arquivo .json
Lido nesta aba. Nada é enviado.
Dê todos os elementos que você tiver. Cada registro a mais estreita o palpite: um campo que falta em um deles é o que o torna opcional.
TypeScript
Como usar
Cole todos os registros que você tiver
Cada elemento de cada array é lido e mesclado, não só o primeiro. Três registros dizem muito mais do que um, porque um campo ausente em um deles é exatamente o que torna esse campo opcional.
Dê nome ao tipo raiz
Objetos aninhados recebem o nome da chave que os contém, no singular para arrays, então `users` produz um `User`. Só a raiz precisa de um nome seu.
Leia as contagens abaixo da saída
Tipos, campos opcionais, uniões e quantos registros foram mesclados. Uma contagem de uniões acima de zero significa que um campo teve dois tipos de valor diferentes na sua amostra — vale olhar antes de colar o resultado em uma base de código.
Copie as interfaces
A saída é um conjunto de interfaces exportadas em ordem de declaração, pronta para colar em um `.d.ts` ou ao lado do fetch que as devolve.
Perguntas frequentes
Isto é um validador?
Não. Tipos TypeScript são apagados no build, então nada aqui verifica a resposta em tempo de execução: um servidor que muda de forma vai te entregar um valor que mente sobre o próprio tipo. Se você precisa que a verificação aconteça, gere Zod na mesma tela e analise com ele.
Por que um campo sai como `string` se é uma data?
Porque em JSON ele é uma string. A inferência é estrutural: relata o que os valores são e não adivinha que uma string com cara de ISO-8601 deveria virar `Date`. Estreitar isso é uma decisão sobre a sua base de código, não sobre a amostra.
E se um campo é às vezes string e às vezes número?
Ele vira uma união, `string | number`, e a contagem de uniões lá embaixo sobe. Isso costuma ser um sinal sobre a API, mais do que sobre o tipo: um campo que muda de espécie é um bug esperando em algum lugar adiante.
Tipos literais são produzidos a partir da amostra?
Não: um `status` que é sempre `"active"` em três registros continua saindo como `string`. Três registros não são prova de uma enumeração, e um tipo literal inferido de poucos dados é o tipo de coisa que quebra um build uma semana depois.
Pode receber de
Conversor de maiúsculas e minúsculas
Case Converter
Converte entre MAIÚSCULAS, minúsculas, Iniciais Maiúsculas, Frase, camelCase, snake_case, kebab-case e CONSTANT_CASE.
Formatador e validador de JSON
JSON Formatter & Validator
Formata, minifica e valida JSON, apontando a linha e a coluna exatas de um erro de sintaxe.
JSON para structs Go
JSON to Go Structs
Gera structs Go com tags json a partir de um exemplo de JSON, incluindo tipos aninhados e repetidos.
JSON para structs Rust
JSON to Rust Structs
Gera structs Rust anotadas com serde a partir de um exemplo de JSON, com Option para campos nulos ou ausentes e renomeações em snake_case.
Em seguida
Estas aceitam o que esta ferramenta produz, então o resultado pode ir direto.
Formatador e validador de JSON
JSON Formatter & Validator
Formata, minifica e valida JSON, apontando a linha e a coluna exatas de um erro de sintaxe.
JSON para structs Go
JSON to Go Structs
Gera structs Go com tags json a partir de um exemplo de JSON, incluindo tipos aninhados e repetidos.
JSON para JSON Schema
JSON to JSON Schema
Infere um JSON Schema de um ou vários exemplos, unindo as formas que encontra.
JSON para schema Zod
JSON to Zod Schema
Monta um schema Zod a partir de um exemplo de JSON, inferindo nullable, opcional e enum.
Codificar e decodificar Base64
Base64 Encoder & Decoder
Codifica e decodifica Base64 e Base64URL para texto ou arquivos, tratando UTF-8 corretamente.
curl para código
curl to Code
Converte um comando curl em fetch, axios, Python requests, Go, PHP ou PowerShell.