JSON para Struct / Interface / Classe

Cole JSON — obtenha definicoes de tipo Go, TypeScript, Python e Java instantaneamente

← Voltar as ferramentas de conversao
1
Cole o JSON

Qualquer objeto ou array JSON

2
Defina o nome raiz

Padrao: "Root"

3
Copie para a sua linguagem

Go, TS, Python ou Java

Cole JSON e clique em Gerar para ver a saida

Mapeamento de Tipos JSON — Como Cada Linguagem Representa os Tipos JSON

Tipo JSONExemploGoTypeScriptPythonJava
string"hello"stringstringstrString
integer42intnumberintInteger
float3.14float64numberfloatDouble
booleantrueboolbooleanboolBoolean
nullnullinterface{}unknownAnyObject
array[1,2,3][]TT[]list[T]List<T>
object{"a":1}struct{...}interface{...}@dataclass classclass{...}

Por que Gerar Tipos a partir de JSON?

Integracao de API e o caso de uso mais comum: recebe uma resposta JSON de uma API REST ou GraphQL e precisa de modelos tipados na sua linguagem de eleicao. Escrever definicoes de struct manualmente a partir de uma grande resposta JSON e tedioso e propenso a erros — um objeto JSON de 100 linhas pode levar mais de 30 minutos para escrever manualmente, e um unico tipo de campo mal correspondido causa erros em tempo de execucao. Ficheiros de configuracao (package.json, terraform.tfstate, docker-compose.yml) sao outra fonte frequente: os programadores querem acesso type-safe aos dados de configuracao. Pipelines de geracao de codigo usam ferramentas JSON-para-tipo como um primeiro passo antes de gerar codigo de serializacao, esquemas de base de dados ou documentacao de API. Esta ferramenta gera as saidas das 4 linguagens a partir de uma unica entrada JSON — sem registo, sem chave API, resultados instantaneos.

Convencoes Especificas de Cada Linguagem

Go: Os nomes dos campos usam PascalCase com tags struct json:"nome_do_campo". Campos string usam string; numeros usam float64 por padrao, a menos que sejam claramente inteiros. Objetos aninhados tornam-se tipos struct aninhados. A tag struct preserva a chave JSON original para marshaling/unmarshaling.

TypeScript: As interfaces usam PascalCase (ex.: Root, Address). Campos opcionais (de valores null) recebem o modificador ?. Arrays usam sintaxe T[]. Tipos de uniao sao gerados para arrays com tipos de elementos mistos.

Python: Usa o decorador @dataclass com anotacoes de tipo. Campos recebem Optional[T] para valores anulaveis. Objetos aninhados tornam-se classes dataclass aninhadas. Os imports from dataclasses import dataclass e from typing import List, Optional estao incluidos.

Java: Gera classes POJO (Plain Old Java Object) com campos privados, getters/setters publicos e colecoes genericas adequadas. Usa List<T> para arrays, Integer/Double/Boolean para wrappers de primitivos anulaveis.

Perguntas frequentes

Como converter JSON para uma Go struct?

Cole o seu JSON, mude para o separador Go. A ferramenta gera Go structs adequadas com tags json:"...", tipos struct aninhados e tipos slice para arrays. Os campos usam PascalCase com a chave JSON original preservada nas tags struct.

Como gerar interfaces TypeScript a partir de JSON?

Selecione o separador TypeScript apos colar o seu JSON. As interfaces sao geradas com modificadores opcionais para campos anulaveis, tipos array usando T[] e interfaces aninhadas para objetos aninhados.

Isto pode gerar Python dataclass ou Java class a partir de JSON?

Sim — todas as 4 linguagens sao geradas simultaneamente. Python: @dataclass com anotacoes de tipo e Optional/List de typing. Java: POJO com campos privados, getters/setters e colecoes genericas. Alterne os separadores para ver cada linguagem.

Como funciona a inferencia de tipos?

Os valores JSON sao mapeados: strings → string/str/String, inteiros → int/number/int/Integer, floats → float64/number/float/Double, booleanos → bool/boolean/bool/Boolean, null → interface{}/unknown/Any/Object, arrays → colecoes tipadas, objetos → tipos aninhados. Consulte a tabela de mapeamento de tipos acima.

E quanto a campos opcionais e valores nulos?

Valores JSON null geram tipos opcionais/ponteiro: *T ou interface{} em Go, modificador ? em TypeScript, Optional[T] em Python, wrappers anulaveis em Java. Campos em falta em alguns elementos do array sao tratados como opcionais em todas as saidas.