Gerador de Modelos Pydantic a partir de JSON
Gere classes de modelo Pydantic v2 a partir de um JSON de exemplo instantaneamente no seu navegador. Seu JSON fica no seu dispositivo.
Seu JSON é analisado e convertido em modelos Pydantic inteiramente no seu navegador, então ele permanece no seu dispositivo e nada é enviado para um servidor.
Precisa de tipos Go, Rust ou TypeScript? Experimente o JSON para Código.
Sobre JSON para Pydantic
Este gerador de json para pydantic transforma um objeto ou array JSON de exemplo em classes de modelo Pydantic v2 prontas para uso em segundos. Cole uma resposta de API real e ele infere o tipo de cada campo, str, int, float e bool, marca campos anuláveis como Optional, unifica arrays em tipos list[...] e promove cada objeto aninhado ao seu próprio BaseModel referenciado por nome. Chaves que não são identificadores Python válidos são mantidas via Field(alias=...) para que o modelo ainda analise seu payload original. Foi feito para desenvolvedores Python e FastAPI que preferem gerar modelos pydantic a partir de json a escrevê-los à mão enquanto montam um cliente tipado. Tudo roda localmente no seu navegador, então o JSON que você cola é processado no seu dispositivo e nada é enviado para um servidor.
Recursos
- Gera classes BaseModel do Pydantic v2 a partir de qualquer objeto ou array JSON
- Infere str, int, float e bool a partir dos seus valores de exemplo
- Marca campos anuláveis e às vezes ausentes como Optional[...]
- Promove objetos aninhados às suas próprias classes BaseModel nomeadas
- Unifica arrays em tipos list[...], arrays vazios viram list[Any]
- Mantém chaves Python inválidas via Field(alias=...) para que a análise ainda funcione
- Emite imports limpos para BaseModel, Field, Optional e Any
- Copie o resultado ou baixe-o como um arquivo .py
Como usar JSON para Pydantic
- Cole seu objeto ou array JSON na caixa de entrada.
- Defina o nome do modelo raiz para combinar com o seu schema, ou deixe como Model.
- Revise as classes Pydantic geradas no painel de saída.
- Copie o resultado ou baixe-o como um arquivo .py.
Exemplo
Entrada
{ "id": 1, "name": "Ada", "address": { "city": "London" } }
Saída
from pydantic import BaseModel
class Address(BaseModel):
city: str
class Model(BaseModel):
id: int
name: str
address: Address
Um objeto aninhado vira seu próprio BaseModel, com a classe raiz por último.
Erros comuns e solução de problemas
- A saída mostra um erro Invalid com uma linha e coluna. — O JSON tem um problema de sintaxe, como uma vírgula sobrando, aspas simples ou uma chave sem aspas. Corrija na linha e coluna informadas e os modelos serão gerados novamente.
- Um campo saiu como Optional[Any] em vez de um tipo concreto. — Todos os valores de exemplo para essa chave eram null, então nenhum tipo concreto pôde ser inferido. Forneça um exemplo com um valor real para esse campo.
- Um campo usa Field(alias=...) com um atributo renomeado. — Essa chave não é um identificador Python válido ou é uma palavra reservada, então ela é exposta sob um nome de atributo seguro com a chave original mantida como alias.
- Um campo de lista saiu como list[Any]. — O array no seu exemplo estava vazio, então nenhum tipo de elemento pôde ser inferido. Inclua pelo menos um elemento representativo para obter uma lista tipada.
Perguntas frequentes
- Ele gera modelos Pydantic v2?
- Sim. A saída tem como alvo a sintaxe do Pydantic v2: cada modelo é uma classe que estende BaseModel, com campos anotados e Field(alias=...) onde uma chave JSON não é um identificador Python válido.
- Como os objetos aninhados são tratados?
- Cada objeto aninhado vira sua própria classe BaseModel, nomeada em PascalCase a partir da chave proprietária, e o pai a referencia por tipo. As classes são emitidas em ordem de dependência, com o modelo raiz por último.
- Como ele mapeia os tipos JSON para tipos Python?
- Strings viram str, números inteiros viram int, decimais viram float, booleanos viram bool, null produz Optional, arrays viram list[...] com um tipo de elemento unificado, e objetos viram BaseModels aninhados.
- O que acontece com chaves que não são nomes Python válidos?
- Uma chave como first-name ou 2fa, ou uma palavra reservada como class, é exposta sob um atributo snake_case seguro e a chave original é preservada com Field(alias="...") para que o modelo ainda analise seu payload.
- Como arrays e arrays vazios são convertidos?
- Arrays viram list[...] usando o tipo unificado dos seus elementos, incluindo um BaseModel aninhado para arrays de objetos. Um array vazio não tem tipo de elemento para inferir, então vira list[Any].
- Meu JSON é enviado para algum lugar quando gero modelos Pydantic?
- Não. A conversão de JSON para Pydantic roda inteiramente no seu navegador, então os dados que você cola são processados localmente e nunca saem do seu dispositivo.
Ferramentas relacionadas
- JSON para TypeScript — Gere interfaces de TypeScript a partir de uma amostra JSON.
- JSON para código — Gere tipos de Go, Rust, Python, Java, Kotlin, C# e TypeScript a partir de JSON.
- Gerador de JSON Schema — Gere um JSON Schema de uma amostra ou valide um documento com Ajv.
- Formatador de JSON — Embeleze, minifique e valide JSON com a localização dos erros.
- JSON para Zod — Gere um schema Zod a partir de um JSON de exemplo, inferindo tipos, arrays e objetos aninhados.
- Visualizador de JSON — Visualizador de texto e árvore recolhível com expandir/recolher e caminhos de nós.
Todas as ferramentas de ArrayKit