Omnikit
DesenvolvimentoArquivosFinançasTodas as ferramentas
Ctrl K
Ferramentas para desenvolvedoresFerramentas de arquivosCalculadoras financeirasTodas as ferramentas
InícioFerramentas para desenvolvedoresConversor de JSON para structs Rust
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский

Conversor de JSON para structs Rust

desenvolvimento

Transforme uma amostra de JSON em structs Rust com derives do serde, renomeações, Option e Vec

Funciona no seu navegador. Nada do que você digita é enviado a lugar nenhum. Verificado em 16 de outubro de 2026.

Cole uma amostra de JSON e receba structs Rust com os derives Serialize e Deserialize do serde. Números inteiros viram i64 e qualquer decimal deixa o campo como f64; um valor null ou ausente em alguns objetos vira Option<T>, e chaves escritas de forma diferente do campo snake_case ganham um rename do serde, 1 rename_all quando todas estão em camelCase.

Esta página foi traduzida automaticamente do original em inglês. Nenhuma pessoa revisou ainda a tradução; a versão em inglês é a que deve ser considerada. Ler o original em inglês

Em seguida:
  • JSON para TypeScript Gere interfaces ou tipos TypeScript a partir de uma amostra JSON
  • Formatador e validador de JSON Formate, valide, minifique e ordene JSON com a posição exata de cada erro

Como converter JSON em uma struct Rust

1

Cole uma amostra de JSON, como a resposta de uma API, na caixa da esquerda.

2

As structs Rust aparecem enquanto você digita, cada uma com #[derive(Serialize, Deserialize)], campos em snake_case e as renomeações do serde de que precisam.

3

Ative Option em todo campo ou PartialEq se quiser, e defina o nome da struct raiz.

4

Clique em Copiar, ou em Baixar para salvar models.rs, e adicione serde (com a feature derive) e serde_json ao Cargo.toml.

Sobre o Conversor de JSON para structs Rust

O Rust decodifica JSON com o serde, e cada objeto precisa de uma struct cujos campos tenham os tipos certos e cujos nomes correspondam às chaves do JSON. Este conversor escreve essas structs a partir de uma amostra, então uma resposta longa de API vira Rust que compila com uma só colagem.

Como os tipos são escolhidos.

Valor JSON Tipo Rust
"text" String
true / false bool
42 (só números inteiros) i64
4.5 (algum decimal visto) f64
null, e também um tipo Option
só null, ou tipos misturados serde_json::Value
[ ... ] Vec<...>
{ } vazio Map<String, Value>
{ ... } uma struct própria

Chaves ausentes. Todos os objetos de um array são unidos em uma struct. Uma chave que alguns deixam de fora vira um Option, porque o serde trata um Option ausente como None e qualquer outro campo ausente como erro. Esses campos também recebem skip_serializing_if, então ao gravar a struct de volta eles ficam de fora de novo.

Nomes. Os campos ficam em snake_case. Quando toda chave é só a forma camelCase do seu campo, a struct leva um único rename_all; caso contrário, cada campo diferente ganha seu próprio rename. Palavras reservadas viram identificadores raw como r#type; self, super e crate não podem ser raw, então viram self_ com um rename.

Opções. Option em todo campo serve para APIs que podem omitir qualquer chave. Derivar PartialEq permite que os testes comparem valores. A struct raiz se chama Root, a menos que você dê outro nome.

Cada resultado foi verificado lendo o Rust de volta com as regras do serde e decodificando 9 amostras com ele. Nada do que você cola sai do navegador.

Perguntas frequentes

Como converto JSON em uma struct Rust?

Cole uma amostra de JSON no conversor e as structs Rust aparecem ao lado, cada uma derivando Serialize e Deserialize. Adicione serde com a feature derive e serde_json ao Cargo.toml, cole as structs em um módulo e decodifique com serde_json::from_str::<Root>(&text).

Quando um campo vira Option<T>?

Um campo vira Option quando a amostra o mostra como null, ou quando alguns objetos de um array deixam a chave de fora. O serde decodifica uma chave ausente em um Option como None, enquanto qualquer outro campo ausente é erro, então é o Option que deixa a struct aceitar todo objeto da amostra.

Como chaves JSON em camelCase viram campos snake_case?

Os campos são escritos em snake_case, como pede o estilo do Rust. Quando toda chave é a forma camelCase do seu campo, a struct recebe um único #[serde(rename_all = "camelCase")]; senão, cada campo escrito de outro jeito ganha seu próprio #[serde(rename = "key")], então chaves como first-name ou 2fa também são decodificadas.

Por que i64 e f64 em vez de i32 ou f32?

O JSON não diz até onde um número pode crescer, então i64 é o tipo inteiro seguro e f64 corresponde à precisão dupla com que os números JSON são lidos. Um campo vira f64 assim que algum valor da amostra tem parte decimal, porque o serde se recusa a ler 4.5 em um inteiro.

O que acontece com uma chave chamada type ou match?

Palavras reservadas são escritas como identificadores raw, como r#type, e o serde remove o r# ao comparar com a chave, então não é preciso rename. As quatro palavras reservadas que não podem ser raw, self, Self, super e crate, viram self_ e semelhantes, com um rename de volta para a chave original.

Meu JSON é enviado?

Não. A conversão roda no seu navegador sem nenhuma requisição a um servidor, e o JSON não é guardado, então respostas de API com tokens ou dados pessoais ficam no seu dispositivo. Feche a aba e nada fica para trás.

Fontes

  • serde, field attributesrename and skip_serializing_if on a field
  • serde, container attributesrename_all = "camelCase" on a struct
  • The Rust Reference, keywords and raw identifiersWhich names need r#, and the four that cannot be raw
  • Rust API Guidelines, namingUpperCamelCase types, snake_case fields

Última verificação: 16 de outubro de 2026.

Taxas e regras mudam; confira a fonte antes de confiar em um valor.

Ainda com dúvidas? Pergunte sobre Conversor de JSON para structs Rust e qualquer pessoa que saiba pode responder. Não é preciso ter conta.

Ferramentas relacionadas

Todas as ferramentas para desenvolvedores
Codificar e decodificar Base64Texto e arquivos para Base64 e de volta, com modo seguro para URL e prévia de imagensConversor de timestamp UnixTimestamps Unix em datas e datas em timestamps, em qualquer fuso horárioJSON para TypeScriptGere interfaces ou tipos TypeScript a partir de uma amostra JSONConverter CSV para JSONConverta CSV para JSON e JSON para CSV, com prévia em tabelaConverter YAML para JSONConverta YAML para JSON e JSON para YAML, com as âncoras resolvidasCodificador e decodificador de URLCodifique ou decodifique texto e URLs com codificação percentual e veja cada parte de um linkConversor de bases numéricasBinário, octal, decimal, hexadecimal e qualquer base até 36, exato em qualquer tamanho, com complemento de doisColor ConverterHEX, RGB, HSL, HWB, OKLCH and CMYK in both directions, with a contrast check
Esta ferramenta foi útil?
Omnikit

Pequenas tarefas, feitas no seu navegador. Grátis, rápido e privado. Os arquivos nunca são enviados.

Arquivos

  • Compress Image
  • Image to PDF
  • Merge PDF
  • Compress PDF
  • PDF to Word
  • Word to PDF

Desenvolvimento

  • JSON Formatter & Validator
  • Base64 Encode & Decode
  • JWT Decoder, Verifier & Encoder
  • Password Generator
  • UUID Generator
  • Unix Timestamp Converter

Finanças

  • SIP Calculator
  • EMI Calculator
  • GST Calculator
  • FD Calculator
  • PPF Calculator
  • Lumpsum Calculator
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский
GuiasPerguntasSobreComo verificamosBiblioteca de leis (beta)PrivacidadeTermosDivulgaçãoContatoMore: Exam practice (UGC NET Paper 1)Funciona no seu navegador. Nada é enviado. © 2026 Omnikit (theomnikit.com)