Utilo

JSON para tipos

Gere structs Go, structs Rust serde, schemas Zod, modelos Pydantic, data classes Kotlin, records Java, classes C#, Swift Codable e tipos TypeScript a partir de JSON. Detecta campos opcionais e anuláveis em arrays.

O que este gerador de tipos JSON faz

Escrever classes de modelo à mão para uma grande resposta de API é lento e propenso a erros. Coloque uma amostra de JSON e esta ferramenta infere um modelo de tipo completo e imprime-o como estruturas Go com tags json, estruturas Rust com derivadas serde, esquemas Zod, modelos Pydantic, classes de dados Kotlin, registros Java, classes C #, estruturas Swift Codable ou interfaces TypeScript. Objetos aninhados tornam-se seus próprios tipos nomeados, matrizes de objetos são mesclados de modo que cada campo visto em qualquer elemento é capturado, e a inferência é executada em um Web Worker para que mesmo amostras de vários megabyte não congelar a página.

Como usar

  1. Colocar o JSON na entrada ou carregar a amostra.
  2. Definir o nome do tipo de raiz, por exemplo User ou OrderResponse.
  3. Escolha a aba de idioma alvo. A saída regenera-se instantaneamente.
  4. Copie o código em seu projeto e ajuste nomes ou tipos onde seu conhecimento de domínio bate inferência.

Como funciona a inferência

  • Campos opcionais: se um elemento de uma matriz não tiver uma chave, esta é marcada como opcional (? em TS, Option<T> em Rust, omitempty em Go, = None em Pydantic).
  • Campos anulados: um valor null torna o campo anulado na língua de destino.
  • ** Números:** Os números inteiros e os floats são rastreados separadamente, de modo que 42 se torna int64/i64/Long enquanto 4.2 se torna um tipo de float.
  • ** Tipos mistos:** quando o mesmo campo contém diferentes tipos, as linguagens com uniões (TypeScript, Zod, Pydantic) obtêm uma união, e os outros voltam a um tipo de valor JSON genérico.
  • Nomeação: Chaves como user_id ou created-at são convertidas em nomes de campo idiomáticos por idioma, com a chave original preservada em tags ou anotações (json:"user_id", #[serde(rename)], @SerialName, CodingKeys).

Dicas

  • Dê-lhe uma amostra representativa. Um único objeto com uma matriz vazia não diz nada sobre os itens da matriz.
  • Combinar várias respostas em uma matriz de nível superior para capturar campos opcionais de forma confiável.
  • A saída Zod exporta tanto o esquema quanto o tipo inferido, para obter validação em tempo de execução e digitação estática juntos.

Perguntas frequentes

O meu JSON está carregado em algum lugar?
  • Não, não. A análise e a geração de código acontecem no seu navegador num trabalhador de fundo.
Por que um campo é digitado como any ou interface{}?

Era null em cada amostra, ou uma matriz vazia, por isso nenhum tipo concreto podia ser inferido. Fornecer uma amostra com um valor real.

- Ele trata de encontros?

O JSON não tem tipo de data, então as strings ISO permanecem strings. Mude-os para time.Time, datetime ou Date à mão, se o decodificador o suportar.

Posso gerar o esquema JSON?

Use a saída Zod ou Pydantic; ambas as bibliotecas podem exportar JSON Schema diretamente.

Sim. Todo o processamento acontece diretamente no seu navegador usando JavaScript, Web Workers e APIs da Web. Nada do que você digita, cola ou envia vai para os nossos servidores.

Esta página foi traduzida automaticamente do inglês. Se encontrar um erro, avise-nos.