JSON-syöte

Rust-tulos

Mikä on JSON Rustiksi?

Jos kutsut REST API:a Rustissa, tarvitset vastaavat struct-määrittelyt ennen kuin voit deserialisoida mitään Serdellä. Näiden structs kirjoittaminen käsin — erityisesti syvään sisäkkäiselle JSON:lle — on työlästä ja virhealtista. Tämä työkalu luo automaattisesti Serde-yhteensopivia Rust-structs. Liitä JSON:isi, saat käyttövalmiit structs #[derive(Serialize, Deserialize)]-merkinnöillä ja lisää ne suoraan Cargo-projektiisi.

Tämä työkalu luo Rust-structeja JSONistasi. Ota Serde käyttöön Serialize/Deserialize -deriveille. Ota Option-tyypit valinnaisille kentille. Tuloste toimii serde_json::from_str- ja serde_json::to_string -kutsujen kanssa.

Muunnos tapahtuu kokonaan selaimessasi. JSONiasi ei lähetetä palvelimelle.

Milloin JSON Rustiksi on hyödyllinen

Kun rakennat Rust-sovelluksia, jotka käyttävät REST-rajapintoja, tarvitset tyypitettyjä structeja. Liitä esimerkkivastaus tähän, niin saat vastaavat structit Serde-tuella.

Miten työkalua käytetään

1

Liitä tai lataa JSON

Kopioi JSON ja liitä se vasempaan editoriin. Voit myös napsauttaa Lataa ja avata tiedoston. Käytä Esimerkki-painiketta testidataan. Aseta structin nimi ja valinnat asetuspaneelissa.

2

Tarkista generoidut structit

Oikea paneeli näyttää generoidut Rust-structit. Sisäkkäiset objektit tulevat erillisiksi structeiksi. Taulukoista tulee Vec<T>. Jos JSONin syntaksi on virheellinen, korjaa se ensin JSON-muotoilijalla tai JSON-tarkistimella.

3

Kopioi tai lataa

Käytä Kopioi tai Lataa tiedostona saadaksesi koodin. Lisää serde ja serde_json Cargo.toml-tiedostoon. Liitä koodi Rust-projektiisi.

Esimerkkejä JSON Rustiksi

Tässä esimerkki Rust-structien generoinnista JSON-objektista.

Esimerkki: Tilaajatietue

JSON-syöte:

Syöte

Generoitu Rust-tulos:

Tulos

Milloin JSON Rustiksi on hyödyllinen

Useimmat kehittäjät tarvitsevat tätä REST-rajapintojen integroinnissa. Liittämällä datan tähän saat heti Serde-yhteensopivia structeja.

Jos sinun täytyy ensin yhdistää kaksi JSON-tiedostoa, käytä erillistä JSON-yhdistäminen -työkalua.

API-vastaukset, asetustiedostot tai dataviennit ovat usein JSONia. Käsittele niitä täällä, niin saat Rust-structeja.

Usein kysyttyä

Miten deserialisoin JSON:in Rustissa Serdellä?

Lisää serde = { version = "1.0", features = ["derive"] } ja serde_json = "1.0" Cargo.toml-tiedostoosi. Johdenna Deserialize structillesi, sitten kutsu serde_json::from_str::<YourStruct>(&json_string). Generoi struct täällä liittämällä JSON:isi.

Mitä #[serde(rename)] tekee Rustissa?

#[serde(rename = "jsonKey")] kertoo Serdelle yhdistää tietyn JSON-avaimen Rust-kenttänimeen. Hyödyllinen kun JSON käyttää camelCase:ia (kuten planName) mutta Rust-structisi käyttää snake_case:ia (plan_name). Generaattori lisää ne automaattisesti tarvittaessa.

Miten käsittelen valinnaisia tai nullable JSON-kenttiä Rustissa?

Ota Option Types käyttöön kääriäksesi nullable-kentät Option<T>:hin. Tämä tarkoittaa, että puuttuvat tai null JSON-kentät deserialisoituvat None:ksi virheen sijaan. Voit myös lisätä #[serde(skip_serializing_if = "Option::is_none")] jättääksesi null-kentät pois serialisoinnissa.

Lähetetäänkö JSON:ini palvelimelle?

Ei. Struct-generointi toimii kokonaan selaimessasi. JSON:isi ei koskaan poistu koneeltasi.

Entä sisäkkäiset JSON-objektit ja taulukot?

Sisäkkäiset JSON-objektit muuttuvat erillisiksi Rust-structeiksi, kukin omalla #[derive(Serialize, Deserialize)]-merkinnällään. Taulukot muuttuvat Vec<T>:ksi niistä struct-tyypeistä. Generaattori käsittelee mielivaltaisen sisäkkäisyyssyvyyden.

Liittyvät työkalut

Rust JSON — katso Serde ja serde_json. JSON — katso JSON-määrittely.