JSON naar Rust struct omzetter
Plak JSON en krijg direct idiomatische Rust-serde-structs. 100% in je browser — data verlaat de pagina nooit. Correcte i64/u64/f64-typen, Option voor null, #[serde(rename)] voor camelCase. Gratis.
Opties
Wat is JSON naar Rust-conversie?
JSON naar Rust-conversie zet een JSON-voorbeeld om in compileerklare Rust-structs met de macro's #[derive(Serialize, Deserialize)] van serde, zodat je nooit deserialisatie-boilerplate voor API-responses of configuratiebestanden met de hand schrijft. Deze snelle Rust-struct-generator leidt correcte getaltypen af, markeert ontbrekende velden als Option en voegt #[serde(rename)] toe voor sleutels die geen snake_case zijn — allemaal 100% in je browser.
Voorbeelden
API-respons
{"id":101,"name":"Ada Lovelace","email":"ada@example.com","active":true,"roles":["admin","user"]} use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Root {
pub id: i64,
pub name: String,
pub email: String,
pub active: bool,
pub roles: Vec<String>,
}
Een typische REST-payload wordt een serde-klare struct die je rechtstreeks in je client kunt plaatsen. Getallen worden i64, arrays worden Vec<String>.
Genest object
{"repo":"serde","owner":{"login":"dtolnay","id":100}} use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Root {
pub repo: String,
pub owner: Owner,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Owner {
pub login: String,
pub id: i64,
}
Geneste objecten worden afzonderlijke, benoemde structs (Owner) waarnaar per veld wordt verwezen — identieke vormen worden ontdubbeld.
Array van objecten (optioneel veld)
{"users":[{"id":1,"nick":"x"},{"id":2}]} use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Root {
pub users: Vec<User>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct User {
pub id: i64,
pub nick: Option<String>,
}
Arrays van objecten worden samengevoegd tot één element-struct. Sleutels die in sommige items ontbreken, worden Option<String> — geen #[serde(default)] nodig.
camelCase-sleutels
{"login":"octocat","publicRepos":15,"followerCount":9001,"createdAt":"2011-01-25"} use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Root {
pub login: String,
#[serde(rename = "publicRepos")]
pub public_repos: i64,
#[serde(rename = "followerCount")]
pub follower_count: i64,
#[serde(rename = "createdAt")]
pub created_at: String,
}
Velden worden snake_case met #[serde(rename)] die terugverwijst naar de originele JSON-sleutel. Sleutels die al snake zijn, zoals login, krijgen geen rename.
Zo zet je JSON om naar Rust
- 1
Plak je JSON
Zet een JSON-object, array of API-respons in het invoerveld. De conversie start direct.
- 2
Stem de uitvoer af
Hernoem het root-struct en schakel serde-derives, Debug en Clone of de pub-zichtbaarheid om, passend bij de stijl van je crate.
- 3
Kopieer of download
Haal de gegenereerde Rust met één klik op en plak het rechtstreeks in je project.
Common Use Cases
- Getypeerde API-clients
- Zet een voorbeeldrespons van REST of GraphQL om in serde-structs voor een reqwest- of vergelijkbare client, zonder deserialisatie-boilerplate met de hand te schrijven.
- Config- en fixture-parsing
- Genereer structs voor JSON-configuratiebestanden, testfixtures of webhook-payloads die je met serde_json moet deserialiseren.
- Snel prototypen
- Plak een onbekende payload om de vorm ervan direct als Rust-types te zien — een snelle manier om een nieuwe API te verkennen voordat je die aansluit.
Hoe de conversie werkt
- Structurele afleiding
- Elk object wordt een benoemd struct; identieke vormen worden ontdubbeld, zodat je één struct krijgt en geen kopieën. Arrays van objecten worden sleutel voor sleutel samengevoegd, en sleutels die in sommige items ontbreken, worden Option<T>.
- Correcte getaltypering
- Gehele getallen worden i64, gaan voorbij i64::MAX over naar u64 en vallen voorbij u64 terug op f64. Floats worden herkend aan het token (1.0, 2e3), zodat de serde-deserialisatie nooit faalt op een float-in-integer-conflict.
- Idiomatische, compileerbare identifiers
- Sleutels worden snake_case-velden met #[serde(rename)] terug naar de originele sleutel; Rust-sleutelwoorden, dubbele namen en niet-identifier-sleutels worden opgeschoond, zodat de uitvoer altijd compileert.
- 100% aan de clientzijde
- Het verwerken en genereren draait in je browser zonder netwerkaanroepen, zodat je data privé blijft.
Tips voor schone Rust-structs
- Geef je root-struct een naam
- Stel een betekenisvolle rootnaam in (bijv. User, ApiResponse) in plaats van de standaard Root voor leesbare code.
- Voeg serde_json alleen toe wanneer nodig
- serde_json::Value verschijnt bij lege of gemengde arrays en velden die alleen null zijn. Geef die velden waar mogelijk een concreet type uit een rijker voorbeeld, of voeg serde_json toe aan Cargo.toml.
- Beoordeel Option versus verplicht
- Velden worden alleen als Option<T> gemarkeerd wanneer een voorbeeld ze weglaat. Plak een representatieve payload zodat de tool verplichte en optionele velden nauwkeurig afleidt.
Veelgestelde vragen
Hoe zet ik JSON om naar een Rust-struct?
Genereert het serde-derives? Heb ik serde en serde_json nodig?
Hoe gebruik ik het gegenereerde struct om JSON te parsen?
Hoe worden optionele en null-velden afgehandeld?
Hoe gaat het om met camelCase-sleutels en Rust-sleutelwoorden?
Kan het #[serde(rename_all)] gebruiken in plaats van renames per veld?
Welk Rust-getaltype gebruikt het?
Hoe worden datums en tijdstempels getypeerd?
Hoe ga ik om met objecten met dynamische of onbekende sleutels?
Zijn mijn JSON-gegevens privé en veilig?
Kan ik kale Rust-structs zonder serde genereren?
Is de tool gratis? Heb ik een account nodig?
Gerelateerde tools
Alle tools bekijken →Base64 decoderen en encoderen online
Encodering en formattering
Base64 decoderen en encoderen direct in je browser. Realtime conversie met volledige UTF-8- en emoji-ondersteuning. 100% privé — geen account nodig.
Base64 naar afbeelding converter
Encodering en formattering
Decodeer een Base64-string of data-URI terug naar een afbeelding in je browser. Bekijk voorbeeld, lees afmetingen & MIME, download als PNG, JPG, GIF, SVG. Geen upload.
CSV naar JSON omzetter
Encodering en formattering
Zet CSV om naar JSON in uw browser. RFC 4180, type-afleiding, headerregel, big-int veilig. 100% privé, geen upload.
.env naar JSON Converter
Encodering en formattering
Plak een .env-bestand, krijg direct JSON. Je wachtwoorden, API-sleutels en tokens verlaten nooit je browser — 100% privé, gratis dotenv-parser.
Gratis HTML-entiteiten decoder — HTML unescapen
Encodering en formattering
Decodeer HTML-entiteiten en unescape HTML online — gratis, geen account, 100% in je browser. Zet genoemde, decimale & hex-referenties terug naar tekens; nooit geüpload.
Gratis HTML-entiteiten encoder — HTML escapen
Encodering en formattering
Encodeer HTML-entiteiten en escape speciale tekens (< > & " ') online — gratis, geen account, 100% in je browser. Genoemde, decimale of hex-uitvoer; nooit geüpload.