JSON para tipos: TypeScript, Swift, Kotlin e mais

Cole um exemplo de JSON e receba definições de tipos em 8 linguagens, com o motor do quicktype.

Roda inteiramente no seu navegador. Nada do que você digita é enviado ou armazenado.

Como usar

  1. Cole um exemplo de JSON, como uma resposta de API, na caixa da esquerda.
  2. Escolha a linguagem de destino e, se quiser, o nome do tipo raiz.
  3. Clique em Converter. Cada objeto aninhado vira um tipo próprio.
  4. Copie o código ou baixe como arquivo-fonte.

Escrever à mão os tipos de modelo de cada resposta de API é lento e sujeito a erros. Este conversor de JSON para tipos lê um exemplo e gera o código correspondente: interfaces TypeScript, structs Swift que seguem Codable, data class Kotlin, classes Dart, structs Go com tags json, dataclass Python e classes C# e Java. Cada objeto aninhado vira um tipo com nome, arrays viram listas tipadas e os nomes das chaves são adaptados ao estilo da linguagem, mantendo a chave JSON original onde for necessário.

A conversão é feita pelo quicktype-core, o motor de código aberto do quicktype (Apache License 2.0), carregado nesta página na primeira vez que você clica em Converter. Com Somente tipos marcado você recebe só as declarações de tipos. No Swift, a conformidade com Codable e as CodingKeys são mantidas e os inicializadores de conveniência são omitidos. Desmarque para receber também os auxiliares de parsing que o quicktype gera por padrão, como a classe Convert do TypeScript, as anotações Jackson do Kotlin ou from_dict no Python.

Os tipos são inferidos do exemplo, então use dados em que todos os campos apareçam. Um valor null vira um tipo opcional ou any, números sem casas decimais viram inteiros e objetos com o mesmo formato em vários lugares podem ser unidos em um só tipo. Seu JSON não sai do navegador: a análise e a geração de código acontecem no seu dispositivo e nada é enviado ou salvo.

Perguntas frequentes

Meu JSON é enviado para um servidor?

Não. O quicktype-core roda no seu navegador. O JSON colado não é enviado nem salvo.

Por que um campo saiu como any ou opcional?

No exemplo esse valor era null ou faltava em alguns objetos. Use um exemplo com valores reais para obter um tipo concreto.

A saída em Swift usa Codable?

Sim. As structs Swift seguem Codable e incluem CodingKeys ligadas às chaves JSON originais.

Posso obter data class Kotlin sem biblioteca?

Sim. Mantenha Somente tipos marcado para receber data class simples. Desmarque para incluir anotações Jackson e auxiliares.

Ferramentas relacionadas