Wejście JSON

Wyjście Rust

Czym jest konwerter JSON do Rust?

Jeśli wywołujesz REST API w Rust, potrzebujesz pasujących definicji struct zanim będziesz mógł zdeserializować cokolwiek za pomocą Serde. Pisanie tych structs ręcznie — zwłaszcza dla głęboko zagnieżdżonego JSON — jest żmudne i podatne na błędy. To narzędzie generuje automatycznie Serde-kompatybilne Rust structs. Wklej JSON, uzyskaj gotowe structs z #[derive(Serialize, Deserialize)] i dodaj je bezpośrednio do swojego projektu Cargo.

To narzędzie generuje struktury Rust z JSON. Włącz Serde dla derywacji Serialize/Deserialize. Włącz typy Option dla pól opcjonalnych. Wyjście działa z serde_json::from_str i serde_json::to_string.

Konwersja odbywa się w całości w przeglądarce. JSON nie jest wysyłany na żaden serwer.

Kiedy JSON do Rust jest przydatny

Gdy tworzysz aplikacje Rust korzystające z REST API i potrzebujesz typowanych struktur. Wklej przykładową odpowiedź tutaj, aby wygenerować odpowiednie struktury z obsługą Serde.

Jak używać tego narzędzia

1

Wklej lub wczytaj JSON

Skopiuj JSON i wklej go do edytora po lewej. Możesz też kliknąć Wczytaj, aby załadować plik. Użyj przycisku Przykład dla danych testowych. Ustaw nazwę struktury i opcje w panelu ustawień.

2

Przejrzyj wygenerowane struktury

Panel po prawej pokazuje wygenerowane struktury Rust. Zagnieżdżone obiekty stają się oddzielnymi strukturami. Tablice stają się Vec<T>. Jeśli składnia JSON jest nieprawidłowa, użyj najpierw Formatera JSON lub Walidatora JSON, aby ją poprawić.

3

Kopiuj lub pobierz

Użyj Kopiuj lub Pobierz, aby uzyskać kod. Dodaj serde i serde_json do Cargo.toml. Wklej do swojego projektu Rust.

Przykłady JSON do Rust

Przykład generowania struktur Rust z obiektu JSON.

Przykład: Rekord abonenta

Wejście JSON:

Wejście

Wygenerowane wyjście Rust:

Wyjście

Kiedy JSON do Rust jest przydatny

Większość programistów potrzebuje tego podczas integracji REST API. Wklej tutaj i uzyskaj struktury kompatybilne z Serde gotowe do użycia.

Jeśli najpierw musisz scalić dwa pliki JSON, istnieje osobne narzędzie do Scalania JSON.

Odpowiedzi API, pliki konfiguracyjne lub eksporty danych są często w formacie JSON. Uruchom tutaj, aby wygenerować struktury Rust.

Często zadawane pytania

Jak deserializować JSON w Rust z Serde?

Dodaj serde = { version = "1.0", features = ["derive"] } i serde_json = "1.0" do swojego Cargo.toml. Wyprowadź Deserialize na swoim struct, następnie wywołaj serde_json::from_str::<YourStruct>(&json_string). Wygeneruj struct tutaj wklejając JSON.

Co robi #[serde(rename)] w Rust?

#[serde(rename = "jsonKey")] mówi Serde, aby mapował konkretny klucz JSON na nazwę pola Rust. Przydatne gdy JSON używa camelCase (jak planName), ale Rust struct używa snake_case (plan_name). Generator dodaje je automatycznie gdy potrzeba.

Jak obsługiwać opcjonalne lub nullable pola JSON w Rust?

Włącz Option Types, aby owinąć nullable pola w Option<T>. Oznacza to, że nieobecne lub null pola JSON deserializują się do None zamiast powodować błąd. Możesz też dodać #[serde(skip_serializing_if = "Option::is_none")], aby pominąć null pola przy serializacji.

Czy mój JSON jest wysyłany na serwer?

Nie. Generowanie structów odbywa się całkowicie w Twojej przeglądarce. Twój JSON nigdy nie opuszcza Twojego komputera.

A co z zagnieżdżonymi obiektami JSON i tablicami?

Zagnieżdżone obiekty JSON stają się oddzielnymi Rust structs, każdy z własnym #[derive(Serialize, Deserialize)]. Tablice stają się Vec<T> tych typów struct. Generator obsługuje dowolną głębokość zagnieżdżenia.

Powiązane narzędzia

JSON w Rust — patrz Serde i serde_json. JSON — patrz specyfikacja JSON.