Entrada JSON

Saída Rust

O que é JSON para Rust?

Se você está chamando uma REST API em Rust, precisa de definições de structs que correspondam antes de poder deserializar qualquer coisa com Serde. Escrever esses structs à mão — especialmente para JSON profundamente aninhado — é tedioso e sujeito a erros. Esta ferramenta gera automaticamente structs Rust compatíveis com Serde. Cole seu JSON, obtenha structs prontos com #[derive(Serialize, Deserialize)], e adicione-os diretamente ao seu projeto Cargo.

Esta ferramenta gera structs Rust a partir do seu JSON. Ative Serde para derives Serialize/Deserialize. Ative Tipos Option para campos opcionais.

A conversão roda inteiramente no seu navegador. Seu JSON nunca é enviado a um servidor.

Quando JSON para Rust ajuda

Ao desenvolver apps Rust que consomem APIs REST, você precisa de structs tipadas.

Como usar esta ferramenta

1

Colar ou enviar JSON

Copie seu JSON e cole no editor esquerdo. Use o botão Amostra para dados de exemplo. Configure o nome do struct e opções no painel de configuração.

2

Revisar os structs gerados

O painel direito mostra os structs Rust gerados. Se seu JSON tiver sintaxe inválida, corrija primeiro com o Formatador JSON ou o Validador JSON.

3

Copiar ou baixar

Use Copiar ou Baixar para obter o código. Adicione serde e serde_json ao seu Cargo.toml. Cole no seu projeto Rust.

Exemplos de JSON para Rust

Aqui está um exemplo de geração de structs Rust a partir de um objeto JSON.

Exemplo: Registro de assinante

Entrada JSON:

Entrada

Saída Rust gerada:

Saída

Quando JSON para Rust ajuda

A maioria dos desenvolvedores precisa disso ao integrar com APIs REST.

Para mesclar dois arquivos JSON primeiro, existe a ferramenta Mesclar JSON.

Respostas de API, arquivos de configuração ou exportações de dados costumam ser JSON.

Perguntas frequentes

Como deserializo JSON em Rust com Serde?

Adicione serde = { version = "1.0", features = ["derive"] } e serde_json = "1.0" ao seu Cargo.toml. Derive Deserialize no seu struct, depois chame serde_json::from_str::<YourStruct>(&json_string). Gere o struct aqui colando seu JSON.

O que faz #[serde(rename)] em Rust?

#[serde(rename = "jsonKey")] diz ao Serde para mapear uma chave JSON específica para um nome de campo Rust. Útil quando JSON usa camelCase (como planName) mas seu struct Rust usa snake_case (plan_name). O gerador adiciona automaticamente quando necessário.

Como lidar com campos JSON opcionais ou nullable em Rust?

Ative Option Types para envolver campos nullable em Option<T>. Isso significa que campos JSON ausentes ou null são deserializados para None em vez de causar erro. Você também pode adicionar #[serde(skip_serializing_if = "Option::is_none")] para omitir campos null ao serializar.

Meu JSON é enviado para um servidor?

Não. A geração de structs é executada completamente no seu navegador. Seu JSON nunca sai da sua máquina.

E os objetos JSON aninhados e arrays?

Objetos JSON aninhados se tornam structs Rust separados, cada um com seu próprio #[derive(Serialize, Deserialize)]. Arrays se tornam Vec<T> desses tipos de struct. O gerador lida com profundidade de aninhamento arbitrária.

Ferramentas relacionadas

Para JSON em Rust, veja Serde e serde_json. Para JSON, veja a especificação JSON.