JSON'dan Rust Struct Dönüştürücü
JSON yapıştırın, anında idiomatik Rust serde struct'ları alın, %100 tarayıcınızda. Doğru i64/u64/f64 türleri, null'lar için Option, camelCase için #[serde(rename)]. Ücretsiz.
Seçenekler
JSON'dan Rust'a dönüştürme nedir?
JSON'dan Rust'a dönüştürme, bir JSON örneğini serde'nin #[derive(Serialize, Deserialize)] makrolarıyla derlemeye hazır Rust struct'larına çevirir; böylece API yanıtları veya yapılandırma dosyaları için elle deserializasyon tekrar kodu yazmazsınız. Bu hızlı Rust struct oluşturucu, doğru sayı türlerini çıkarsar, bulunmayan alanları Option olarak işaretler ve snake_case olmayan anahtarlar için #[serde(rename)] ekler — hepsi %100 tarayıcınızda.
Örnekler
API yanıtı
{"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>,
}
Tipik bir REST yükü, istemcinize bırakabileceğiniz serde'ye hazır bir struct'a dönüşür. Sayılar i64 olarak çıkarsanır, diziler Vec<String> olur.
İç içe nesne
{"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,
}
İç içe nesneler, alan üzerinden referans verilen ayrı, adlandırılmış struct'lara dönüşür (Owner) — aynı biçimler tekilleştirilir.
Nesne dizisi (isteğe bağlı alan)
{"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>,
}
Nesne dizileri tek bir öğe struct'ında birleşir. Bazı öğelerde eksik olan anahtarlar Option<String> olur — #[serde(default)] gerekmez.
camelCase anahtarlar
{"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,
}
Alanlar #[serde(rename)] ile snake_case olur ve orijinal JSON anahtarına geri eşlenir. login gibi zaten snake_case olan anahtarlar rename almaz.
JSON nasıl Rust'a dönüştürülür
- 1
JSON'unuzu yapıştırın
Giriş alanına bir JSON nesnesi, dizisi veya API yanıtı bırakın. Dönüştürme anında başlar.
- 2
Çıktıyı ayarlayın
Kök struct'ı yeniden adlandırın ve crate'inizin stiline uyması için serde derive'lerini, Debug ve Clone'u veya pub görünürlüğünü açıp kapatın.
- 3
Kopyalayın veya indirin
Oluşturulan Rust'ı tek tıkla alın ve doğrudan projenize yapıştırın.
Common Use Cases
- Türlenmiş API istemcileri
- Bir REST veya GraphQL yanıtı örneğini, elle deserializasyon tekrar kodu yazmadan bir reqwest ya da benzeri istemci için serde struct'larına dönüştürün.
- Yapılandırma ve fikstür ayrıştırma
- serde_json ile deserialize etmeniz gereken JSON yapılandırma dosyaları, test fikstürleri veya webhook yükleri için struct'lar oluşturun.
- Hızlı prototipleme
- Bilmediğiniz bir yükü yapıştırıp biçimini anında Rust türleri olarak görün — yeni bir API'yi bağlamadan önce keşfetmenin hızlı bir yolu.
Dönüştürme nasıl çalışır
- Yapısal çıkarım
- Her nesne adlandırılmış bir struct olur; aynı biçimler tekilleştirilir, böylece kopyalar değil tek bir struct elde edersiniz. Nesne dizileri anahtar anahtar birleştirilir ve bazı öğelerde bulunmayan anahtarlar Option<T> olur.
- Doğru sayı türleme
- Tam sayılar i64'e eşlenir, i64::MAX'ın ötesinde u64'e yükselir ve u64'ün ötesinde f64'e geri düşer. Kayan sayılar tokenden algılanır (1.0, 2e3), böylece serde deserializasyonu bir kayan sayının tam sayı alanına uyumsuzluğunda asla başarısız olmaz.
- İdiomatik, derlenebilir tanımlayıcılar
- Anahtarlar #[serde(rename)] ile orijinal anahtara geri dönen snake_case alanları olur; Rust anahtar sözcükleri, yinelenen adlar ve tanımlayıcı olmayan anahtarlar temizlenir, böylece çıktı her zaman derlenir.
- %100 istemci tarafı
- Ayrıştırma ve oluşturma, ağ çağrısı olmadan tarayıcınızda çalışır; böylece verileriniz gizli kalır.
Temiz Rust struct'ları için ipuçları
- Kök struct'ınızı adlandırın
- Okunabilir kod için varsayılan Root yerine anlamlı bir kök adı belirleyin (örneğin User, ApiResponse).
- serde_json'u yalnızca gerektiğinde ekleyin
- serde_json::Value, boş veya karışık türde diziler ve yalnızca null içeren alanlar için ortaya çıkar. Yapabiliyorsanız bu alanlara daha zengin bir örnekten somut bir tür verin ya da Cargo.toml dosyanıza serde_json ekleyin.
- Option'a karşı zorunlu alanları gözden geçirin
- Alanlar yalnızca bir örnek onları atladığında Option<T> olarak işaretlenir. Aracın zorunlu ve isteğe bağlı alanları doğru çıkarabilmesi için temsili bir yük yapıştırın.
Sıkça Sorulan Sorular
JSON'u bir Rust struct'ına nasıl dönüştürürüm?
serde derive'leri oluşturur mu? serde ve serde_json'a ihtiyacım var mı?
Oluşturulan struct'ı JSON ayrıştırmak için nasıl kullanırım?
İsteğe bağlı ve null alanlar nasıl işlenir?
camelCase anahtarları ve Rust anahtar sözcüklerini nasıl işler?
Alan başına rename yerine #[serde(rename_all)] kullanabilir mi?
Hangi Rust sayı türünü kullanır?
Tarihler ve zaman damgaları nasıl türlenir?
Dinamik veya bilinmeyen anahtarlara sahip nesneleri nasıl işlerim?
JSON verilerim gizli ve güvende mi?
serde olmadan düz Rust struct'ları oluşturabilir miyim?
Araç ücretsiz mi? Hesap gerekiyor mu?
İlgili Araçlar
Tüm araçları görüntüleyin →Base64 Çözücü ve Kodlayıcı
Kodlama ve Biçimlendirme
Base64'ü ücretsiz çevrimiçi kodlayın ve çözün. Tam UTF-8 ve emoji desteğiyle gerçek zamanlı dönüştürme. %100 tarayıcıda — kayıt gerekmez.
Base64'ü Görsele Çevirme Aracı
Kodlama ve Biçimlendirme
Bir Base64 dizesini ya da data URI'yi tarayıcınızda görsele geri çözün. Önizleyin, boyutları ve MIME'ı okuyun, ardından PNG, JPG, GIF, SVG olarak indirin. Yükleme yok.
CSV'den JSON'a Dönüştürücü
Kodlama ve Biçimlendirme
CSV'yi tarayıcınızda JSON'a dönüştürün. RFC 4180, tür çıkarımı, başlık satırı, büyük tam sayı güvenli. %100 gizli, yükleme yok.
.env'den JSON'a Dönüştürücü
Kodlama ve Biçimlendirme
Bir .env dosyası yapıştırın, anında JSON alın. Sırlarınız tarayıcınızdan asla çıkmaz — %100 gizli, yükleme yok, ücretsiz dotenv ayrıştırıcı.
Ücretsiz HTML Varlık Çözücü — HTML Unescape
Kodlama ve Biçimlendirme
HTML varlıklarını çözün ve HTML'i çevrimiçi unescape edin — ücretsiz, kayıt yok, %100 tarayıcınızda. Adlı, ondalık & hex referansları tekrar karaktere çevirir; asla yüklenmez.
Ücretsiz HTML Varlık Kodlayıcı — HTML Escape
Kodlama ve Biçimlendirme
HTML varlıklarını kodlayın ve özel karakterleri (< > & " ') çevrimiçi escape edin — ücretsiz, kayıt yok, %100 tarayıcınızda. Adlı, ondalık veya hex çıktı; asla yüklenmez.