Razvoj / Tipovi
Konverter iz JSON-a u Rust strukture
Pretvorite JSON uzorak u Rust strukture sa serde atributima Serialize i Deserialize, poljima u snake_case formatu, preimenovanjima, Option tipom za nedostajuće ili null ključeve i Vec tipom za nizove.
Konverter iz JSON-a u Rust strukture: Svaki objekat postaje struktura sa javnim poljima. Ključevi se pretvaraju u snake_case, uz #[serde(rename = "…")] kada se način pisanja u JSON-u razlikuje, a Rust ključne reči, kao što je type, postaju sirovi identifikatori (r#type), koje serde automatski mapira nazad. Ključevi koji nedostaju ili imaju vrednost null u nekim zapisima postaju Option<T>, a vrednosti bez jasno određenog tipa postaju serde_json::Value. Izlaz za nekoliko uzoraka je kompajliran, a njegov uzorak je deserijalizovan pomoću serde 1. Radi 100% lokalno u vašem pregledaču, bez otpremanja datoteka na server.
- Kategorija
- Alatke za programere
- Pokretanja
- U vašem pregledaču
- Trošak
- Besplatno · bez registracije
- Dostupnost
- Spremno za upotrebu
U potpunosti radi u vašem pregledaču
Rust
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Address {
pub city: String,
pub zip_code: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct User {
pub id: i64,
pub user_name: String,
pub avatar_url: String,
pub score: f64,
pub tags: Vec<String>,
pub address: Address,
pub manager_id: Option<i64>,
#[serde(default)]
pub nickname: Option<String>,
}
pub type UserList = Vec<User>;
Zahteva crate-ove serde (sa funkcijom derive) i serde_json. Nazivi polja postaju snake_case, uz #[serde(rename)] kada se ključ razlikuje; ključevi koji nedostaju ili su null u nekim objektima postaju Option. Brojevi su i64 osim ako uzorak sadrži razlomak.
Čitanje i upisivanje podataka
Deserijalizujte pomoću serde_json::from_str::<Root>(&text)? a serijalizujte pomoću serde_json::to_string(&value)?. Nepoznati ključevi u ulazu se podrazumevano ignorišu; dodajte #[serde(deny_unknown_fields)] strukturi da biste ih odbili.
Za isti primer u Go jeziku pogledajte JSON u Go; za sređivanje primera pre toga koristite Formatiranje JSON-a.
Opcije i nedostajući ključevi
Nedostajući ključ i vrednost null deserijalizuju se u None za polje tipa Option. Ako treba da ih razlikujete, koristite Option<Option<T>> sa paketom serde_with ili zadržite serde_json::Value za to polje.
Kako se koristi
- Nalepite JSON uzorak, idealno niz sa nekoliko tipičnih zapisa.
- Zadajte naziv tipa najvišeg nivoa i izaberite da li polja sa vrednošću None treba izostaviti prilikom serijalizacije.
- Kopirajte strukture u svoj crate, kojem su potrebni serde i serde_json.
Privatnost i ograničenja
JSON se konvertuje u vašem pregledaču i nikada se ne otprema.
Srodne alatke
Često postavljana pitanja
Koji crate-ovi su mi potrebni?
serde sa funkcijom derive i serde_json: serde = { version = "1", features = ["derive"] } i serde_json = "1" u datoteci Cargo.toml.
Zašto i64 i f64?
Oni bezbedno mogu da sadrže bilo koji JSON broj. Ako znate opseg vrednosti, suzite ih na u32, u8 ili f32.
Mogu li umesto toga da koristim #[serde(rename_all)]?
Da: ako svaki ključ koristi istu konvenciju, kao što je camelCase, jedan #[serde(rename_all = "camelCase")] na strukturi zamenjuje pojedinačna preimenovanja.
Besplatan alat · pokretanja: u vašem pregledaču · nalog nije potreban