JSON para Rust
Converter JSON para structs Rust online. Gerar structs compatíveis com Serde para desenvolvimento Rust. Grátis, roda no seu navegador—nenhum dado enviado a servidores.
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
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.
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.
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:
Saída Rust gerada:
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.