Konverter JSON ke Struct Rust
Tempel JSON, dapatkan struct serde Rust idiomatik seketika, 100% di browser Anda. Tipe i64/u64/f64 yang benar, Option untuk null, #[serde(rename)] untuk camelCase. Gratis.
Opsi
Apa itu konversi JSON ke Rust?
Konversi JSON ke Rust mengubah sampel JSON menjadi struct Rust siap-kompilasi dengan makro #[derive(Serialize, Deserialize)] dari serde, sehingga Anda tak pernah menulis tangan boilerplate deserialisasi untuk respons API atau file konfigurasi. Generator struct Rust yang cepat ini menyimpulkan tipe angka yang benar, menandai field yang absen sebagai Option, dan menambahkan #[serde(rename)] untuk kunci non-snake_case — semuanya 100% di browser Anda.
Contoh
Respons API
{"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>,
}
Payload REST yang khas menjadi struct siap-serde yang dapat langsung Anda pakai di klien Anda. Angka disimpulkan i64, array menjadi Vec<String>.
Objek bertingkat
{"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,
}
Objek bertingkat menjadi struct terpisah dengan nama (Owner) yang direferensikan per field — bentuk yang identik dideduplikasi.
Array objek (field opsional)
{"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>,
}
Array objek digabung menjadi satu struct elemen. Kunci yang hilang dari sebagian item menjadi Option<String> — tanpa perlu #[serde(default)].
Kunci camelCase
{"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,
}
Field menjadi snake_case dengan #[serde(rename)] yang memetakan kembali ke kunci JSON asli. Kunci yang sudah snake seperti login tidak diberi rename.
Cara mengonversi JSON ke Rust
- 1
Tempel JSON Anda
Masukkan objek JSON, array, atau respons API ke kolom input. Konversi dimulai seketika.
- 2
Setel output
Ganti nama struct root dan aktifkan derive serde, Debug dan Clone, atau visibilitas pub agar sesuai gaya crate Anda.
- 3
Salin atau unduh
Ambil Rust yang dihasilkan dengan satu klik dan tempel langsung ke proyek Anda.
Common Use Cases
- Klien API bertipe
- Ubah sampel respons REST atau GraphQL menjadi struct serde untuk klien reqwest atau serupa tanpa menulis boilerplate deserialisasi dengan tangan.
- Parsing konfigurasi dan fixture
- Hasilkan struct untuk file konfigurasi JSON, fixture uji, atau payload webhook yang perlu Anda deserialisasi dengan serde_json.
- Prototipe cepat
- Tempel payload yang tak dikenal untuk langsung melihat bentuknya sebagai tipe Rust — cara cepat menjelajahi API baru sebelum menghubungkannya.
Cara kerja konversi
- Inferensi struktural
- Setiap objek menjadi struct bernama; bentuk yang identik dideduplikasi sehingga Anda mendapat satu struct, bukan salinan. Array objek digabung kunci demi kunci, dan kunci yang absen dari sebagian item menjadi Option<T>.
- Penentuan tipe angka yang benar
- Bilangan bulat dipetakan ke i64, naik ke u64 setelah i64::MAX, dan turun ke f64 di luar u64. Float dideteksi dari token (1.0, 2e3) sehingga deserialisasi serde tak pernah gagal karena ketidakcocokan float-ke-integer.
- Identifier idiomatik yang dapat dikompilasi
- Kunci menjadi field snake_case dengan #[serde(rename)] kembali ke kunci asli; kata kunci Rust, nama duplikat, dan kunci non-identifier disterilkan agar output selalu terkompilasi.
- 100% sisi klien
- Parsing dan pembuatan berjalan di browser Anda tanpa panggilan jaringan, sehingga data Anda tetap privat.
Tips untuk struct Rust yang rapi
- Beri nama struct root Anda
- Tetapkan nama root yang bermakna (mis. User, ApiResponse) alih-alih Root bawaan agar kode mudah dibaca.
- Tambahkan serde_json hanya saat perlu
- serde_json::Value muncul untuk array kosong atau bertipe campuran dan field yang hanya null. Beri field tersebut tipe konkret dari sampel yang lebih kaya jika bisa, atau tambahkan serde_json ke Cargo.toml.
- Tinjau Option vs wajib
- Field ditandai Option<T> hanya ketika sebuah sampel menghilangkannya. Tempel payload yang representatif agar alat menyimpulkan field wajib dan opsional secara akurat.
Pertanyaan yang sering diajukan
Bagaimana cara mengonversi JSON menjadi struct Rust?
Apakah alat ini menghasilkan derive serde? Apakah saya perlu serde dan serde_json?
Bagaimana cara memakai struct yang dihasilkan untuk mem-parsing JSON?
Bagaimana field opsional dan null ditangani?
Bagaimana alat ini menangani kunci camelCase dan kata kunci Rust?
Bisakah alat ini memakai #[serde(rename_all)] alih-alih rename per-field?
Tipe angka Rust apa yang dipakai?
Bagaimana tanggal dan timestamp diberi tipe?
Bagaimana menangani objek dengan kunci dinamis atau tak dikenal?
Apakah data JSON saya privat dan aman?
Bisakah saya menghasilkan struct Rust biasa tanpa serde?
Apakah alat ini gratis? Apakah saya perlu akun?
Alat Terkait
Lihat semua alat →Decode & Encode Base64 Online — Konversi Instan di Browser
Encoding & Pemformatan
Decode dan encode Base64 online gratis. Konversi real-time dengan dukungan UTF-8 dan emoji. 100% privat di browser Anda. Tanpa pendaftaran.
Konverter Base64 ke Gambar
Encoding & Pemformatan
Decode string Base64 atau data URI kembali menjadi gambar di browser. Pratinjau, baca dimensi & MIME, lalu unduh sebagai PNG, JPG, GIF, SVG. Tanpa upload.
Konverter CSV ke JSON
Encoding & Pemformatan
Konversi CSV ke JSON di browser. RFC 4180, infer tipe, baris header, aman big-int. 100% privat, tanpa unggah.
Konverter .env ke JSON
Encoding & Pemformatan
Tempel file .env, dapatkan JSON seketika. Password, kunci API, dan token tak pernah keluar dari browser — parser dotenv 100% privat, tanpa unggah, gratis.
Decoder Entitas HTML Gratis — Unescape HTML
Encoding & Pemformatan
Decode entitas HTML dan unescape HTML online — gratis, tanpa daftar, 100% di browser Anda. Mengubah referensi named, desimal & hex kembali menjadi karakter; tidak pernah diunggah.
Encoder Entitas HTML Gratis — Escape HTML
Encoding & Pemformatan
Encode entitas HTML dan escape karakter khusus (< > & " ') online — gratis, tanpa daftar, 100% di browser Anda. Output named, desimal, atau hex; tidak pernah diunggah.