JSON to Code
Gere tipos em TypeScript, Go, Python, Java, Kotlin, Rust, C# ou PHP a partir de JSON.
Entrada JSON
Código gerado
Digite JSON à esquerda para gerar um tipo a partir dele.
O que é JSON to Code?
Um gerador de JSON to Code inspeciona a forma real de um documento JSON — suas chaves, aninhamento e tipos de valor — e produz uma definição de tipos correspondente na linguagem de programação de sua escolha: uma interface TypeScript, um struct Go, um TypedDict Python, um record Java, uma data class Kotlin, um struct Rust, um record C# ou uma classe PHP. Isso poupa o passo tedioso e propenso a erros de transcrever à mão uma resposta de API ou arquivo de configuração em código tipado toda vez que a forma daqueles dados muda. Em vez de escrever (e reescrever constantemente) definições de tipo à mão sempre que um payload JSON upstream ganha um campo ou muda o tipo de um valor, você cola o JSON uma vez e obtém um ponto de partida preciso na linguagem de destino, com objetos e arrays aninhados convertidos em seus próprios tipos nomeados.
Como usar JSON to Code
- Cole ou digite um documento JSON representativo no painel esquerdo — quanto mais completa a amostra (todos os campos opcionais presentes, arrays com pelo menos um item), mais completo será o tipo gerado.
- Escolha uma linguagem de destino no seletor acima da saída — TypeScript, Go, Python, Java, Kotlin, Rust, C# ou PHP.
- Opcionalmente, defina um nome para o tipo raiz (o padrão é "Root") — tipos de objetos aninhados são nomeados a partir da chave que os contém.
- Copie o código gerado do painel direito direto para o seu projeto.
Exemplos
Objeto plano → TypeScript
Entrada
{"id": 1, "name": "Ada", "active": true}
Saída
interface Root { id: number; name: string; active: boolean; }
Objeto aninhado → struct Go
Entrada
{"user": {"id": 1, "name": "Ada"}}
Saída
type Root struct { User RootUser `json:"user"` } type RootUser struct { Id int `json:"id"` Name string `json:"name"` }
Erros comuns
- Colar uma amostra JSON sem os campos opcionais — o tipo gerado simplesmente omitirá campos que nunca viu, então uma amostra incompleta produz um tipo incompleto.
- Esperar que tipos numéricos exatos (int vs. float, ou larguras de bits específicas) sejam inferidos — a maioria das linguagens aqui recebe um tipo numérico de propósito geral em vez de uma precisão adivinhada.
- Esquecer de renomear o tipo raiz — se você está gerando vários tipos relacionados no mesmo arquivo, dê a cada geração um nome de raiz distinto para evitar colisão de nomes.
Por que usar esta ferramenta
- Roda inteiramente no cliente — nenhum JSON que você colar aqui é enviado a um servidor.
- Cobre oito linguagens a partir de uma única entrada, então você não precisa de uma ferramenta separada por linguagem de destino.
- Objetos e arrays aninhados recebem sub-tipos devidamente nomeados em vez de serem achatados ou deixados sem tipo.