Omnikit
ProgramowaniePlikiFinanseWszystkie narzędzia
Ctrl K
Narzędzia dla programistówNarzędzia do plikówKalkulatory finansoweWszystkie narzędzia
Strona głównaNarzędzia dla programistówKonwerter JSON na struktury Rust
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский

Konwerter JSON na struktury Rust

programowanie

Zamiana próbki JSON na struktury Rust z derive serde, zmianami nazw, Option i Vec

Działa w przeglądarce. Wpisane dane nie są nigdzie wysyłane. Sprawdzono 16 października 2026.

Wystarczy wkleić próbkę JSON, aby otrzymać struktury Rust z derive Serialize i Deserialize z serde. Liczby całkowite stają się i64, a każda wartość dziesiętna zmienia pole na f64; wartość null lub brakująca w niektórych obiektach staje się Option<T>, a klucze zapisane inaczej niż ich pole w snake_case dostają rename z serde, 1 rename_all, gdy wszystkie są w camelCase.

Ta strona została przetłumaczona maszynowo z angielskiego oryginału. Tłumaczenie nie zostało jeszcze sprawdzone przez człowieka, dlatego wiążąca jest wersja angielska. Przeczytaj angielski oryginał

Dalej:
  • JSON na TypeScript Generuj interfejsy lub typy TypeScript z przykładowego JSON
  • Formater i walidator JSON Formatowanie, walidacja, minifikacja i sortowanie JSON z dokładną pozycją błędu

Jak przekonwertować JSON na strukturę Rust

1

Wklej próbkę JSON, na przykład odpowiedź API, do lewego pola.

2

Struktury Rust pojawiają się w trakcie pisania, każda z #[derive(Serialize, Deserialize)], polami w snake_case i potrzebnymi zmianami nazw z serde.

3

Włącz Option dla każdego pola lub PartialEq, jeśli są potrzebne, i ustaw nazwę struktury głównej.

4

Kliknij Kopiuj albo Pobierz, aby zapisać models.rs, i dodaj serde (z funkcją derive) oraz serde_json do Cargo.toml.

Konwerter JSON na struktury Rust

Rust dekoduje JSON za pomocą serde, a każdy obiekt potrzebuje struktury, której pola mają właściwe typy, a nazwy odpowiadają kluczom JSON. Konwerter pisze takie struktury na podstawie próbki, więc długa odpowiedź API staje się kompilującym się kodem Rust po jednym wklejeniu.

Jak dobierane są typy.

Wartość JSON Typ Rust
"text" String
true / false bool
42 (tylko liczby całkowite) i64
4.5 (wystąpiła jakakolwiek część dziesiętna) f64
null oraz inny typ Option
tylko null lub różne rodzaje serde_json::Value
[ ... ] Vec<...>
{ } pusty Map<String, Value>
{ ... } osobna struktura

Brakujące klucze. Wszystkie obiekty tablicy są łączone w jedną strukturę. Klucz, który niektóre pomijają, staje się Option, ponieważ serde traktuje brakujące Option jako None, a każde inne brakujące pole jako błąd. Takie pola dostają też skip_serializing_if, więc przy ponownym zapisie struktury znów są pomijane.

Nazwy. Pola są w snake_case. Gdy każdy klucz jest po prostu formą camelCase swojego pola, struktura ma jedno rename_all; w przeciwnym razie każde inne pole dostaje własne rename. Słowa kluczowe stają się surowymi identyfikatorami, np. r#type; self, super i crate nie mogą być surowe, więc stają się self_ z rename.

Opcje. Option dla każdego pola pasuje do API, które mogą pominąć dowolny klucz. Wyprowadzenie PartialEq pozwala testom porównywać wartości. Struktura główna nazywa się Root, chyba że zostanie nazwana inaczej.

Każdy wynik sprawdzono, odczytując kod Rust z powrotem według reguł serde i dekodując nim 9 próbek. Nic, co zostanie wklejone, nie opuszcza przeglądarki.

Najczęściej zadawane pytania

Jak przekonwertować JSON na strukturę Rust?

Po wklejeniu próbki JSON do konwertera obok pojawiają się struktury Rust, każda z derive Serialize i Deserialize. Należy dodać serde z funkcją derive oraz serde_json do Cargo.toml, wkleić struktury do modułu i dekodować przez serde_json::from_str::<Root>(&text).

Kiedy pole staje się Option<T>?

Pole staje się Option, gdy w próbce ma wartość null albo gdy niektóre obiekty tablicy pomijają klucz. Serde dekoduje brakujący klucz w Option jako None, a każde inne brakujące pole jest błędem, więc to Option pozwala strukturze przyjąć każdy obiekt próbki.

Jak klucze JSON w camelCase są mapowane na pola w snake_case?

Pola są zapisywane w snake_case, zgodnie ze stylem Rusta. Gdy każdy klucz jest formą camelCase swojego pola, struktura dostaje jedno #[serde(rename_all = "camelCase")]; w przeciwnym razie każde inaczej zapisane pole dostaje własne #[serde(rename = "key")], więc dekodowane są też klucze takie jak first-name czy 2fa.

Dlaczego i64 i f64 zamiast i32 lub f32?

JSON nie określa, jak duża może być liczba, więc i64 jest bezpiecznym typem całkowitym, a f64 odpowiada podwójnej precyzji, z jaką odczytywane są liczby JSON. Pole staje się f64, gdy tylko którakolwiek wartość w próbce ma część dziesiętną, bo serde odmawia odczytania 4.5 do liczby całkowitej.

Co dzieje się z kluczem o nazwie type lub match?

Słowa kluczowe są zapisywane jako surowe identyfikatory, np. r#type, a serde usuwa r# przy porównaniu z kluczem, więc rename nie jest potrzebne. Cztery słowa kluczowe, które nie mogą być surowe, self, Self, super i crate, stają się self_ i podobnymi, z rename z powrotem na oryginalny klucz.

Czy mój JSON jest wysyłany?

Nie. Konwersja działa w przeglądarce bez żadnego żądania do serwera, a JSON nie jest zapisywany, więc odpowiedzi API z tokenami lub danymi osobowymi zostają na urządzeniu. Po zamknięciu karty nic nie pozostaje.

Źródła

  • serde, field attributesrename and skip_serializing_if on a field
  • serde, container attributesrename_all = "camelCase" on a struct
  • The Rust Reference, keywords and raw identifiersWhich names need r#, and the four that cannot be raw
  • Rust API Guidelines, namingUpperCamelCase types, snake_case fields

Ostatnia weryfikacja: 16 października 2026.

Stawki i przepisy się zmieniają; przed oparciem się na danej liczbie należy sprawdzić źródło.

Nadal coś nie działa? Zapytaj o narzędzie Konwerter JSON na struktury Rust a odpowiedzieć może każdy, kto zna odpowiedź. Konto nie jest potrzebne.

Powiązane narzędzia

Wszystkie narzędzia dla programistów
Kodowanie i dekodowanie Base64Tekst i pliki do Base64 i z powrotem, z trybem bezpiecznym dla URL i podglądem obrazówKonwerter znacznika czasu UnixZnaczniki czasu Unix na daty i daty na znaczniki czasu, w dowolnej strefie czasowejJSON na TypeScriptGeneruj interfejsy lub typy TypeScript z przykładowego JSONKonwerter CSV na JSONKonwertuj CSV na JSON i JSON na CSV, z podglądem tabeliKonwerter YAML na JSONKonwertuj YAML na JSON i JSON na YAML, z rozwiązanymi kotwicamiKoder i dekoder URLKodowanie procentowe i dekodowanie tekstu oraz adresów URL, z podglądem każdej części linkuKonwerter kolorówHEX, RGB, HSL, HWB, OKLCH i CMYK w obie strony, ze sprawdzaniem kontrastuKonwerter systemów liczbowychDwójkowy, ósemkowy, dziesiętny, szesnastkowy i dowolna podstawa do 36, dokładnie przy każdej wielkości, z kodem uzupełnień do dwóch
Czy to narzędzie było pomocne?
Omnikit

Małe zadania wykonywane w przeglądarce. Bezpłatnie, szybko i prywatnie. Pliki nigdy nie są przesyłane.

Pliki

  • Compress Image
  • Image to PDF
  • Merge PDF
  • Compress PDF
  • PDF to Word
  • Word to PDF

Programowanie

  • JSON Formatter & Validator
  • Base64 Encode & Decode
  • JWT Decoder, Verifier & Encoder
  • Password Generator
  • UUID Generator
  • Unix Timestamp Converter

Finanse

  • SIP Calculator
  • EMI Calculator
  • GST Calculator
  • FD Calculator
  • PPF Calculator
  • Lumpsum Calculator
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский
PoradnikiPytaniaO serwisieJak sprawdzamyBiblioteka prawa (beta)PrywatnośćRegulaminUjawnieniaKontaktMore: Exam practice (UGC NET Paper 1)Działa w przeglądarce. Nic nie jest przesyłane. © 2026 Omnikit (theomnikit.com)