محوّل JSON إلى بنية Rust
الصق JSON واحصل على بنى Rust اصطلاحية مع serde فوراً، 100% في متصفّحك. أنواع i64/u64/f64 صحيحة، وOption للقيم الفارغة، و#[serde(rename)] لمفاتيح camelCase. مجاني.
الخيارات
ما هو تحويل JSON إلى Rust؟
يحوّل تحويل JSON إلى Rust عيّنة JSON إلى بنى Rust جاهزة للتصريف مع ماكرو #[derive(Serialize, Deserialize)] من serde، فلا تكتب يدوياً كوداً نمطياً لفكّ التسلسل لاستجابات API أو ملفات الإعداد. يستنتج مولّد بنى Rust السريع هذا أنواع الأرقام الصحيحة، ويعلّم الحقول الغائبة على أنها Option، ويضيف #[serde(rename)] للمفاتيح غير snake_case — كل ذلك 100% في متصفحك.
أمثلة
استجابة 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>,
}
تتحوّل حمولة REST نموذجية إلى بنية جاهزة لـserde يمكنك إدراجها مباشرة في عميلك. تُستنتج الأرقام i64، وتصبح المصفوفات Vec<String>.
كائن متداخل
{"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,
}
تصبح الكائنات المتداخلة بنى منفصلة ومسماة (Owner) يُشار إليها حسب الحقل — وتُزال تكرارات الأشكال المتطابقة.
مصفوفة من الكائنات (حقل اختياري)
{"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>,
}
تُدمج مصفوفات الكائنات في بنية عنصر واحدة. المفاتيح الغائبة من بعض العناصر تصبح Option<String> — دون الحاجة إلى #[serde(default)].
مفاتيح 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,
}
تصبح الحقول snake_case مع #[serde(rename)] يعيد التعيين إلى مفتاح JSON الأصلي. المفاتيح التي هي snake_case أصلاً مثل login لا تحصل على إعادة تسمية.
كيفية تحويل JSON إلى Rust
- 1
الصق بيانات JSON
أدرِج كائن JSON أو مصفوفة أو استجابة API في حقل الإدخال. يبدأ التحويل فوراً.
- 2
اضبط الإخراج
أعد تسمية البنية الجذرية وبدّل مشتقات serde، وDebug وClone، أو رؤية pub لتطابق نمط الـcrate لديك.
- 3
انسخ أو حمّل
خذ Rust المُولَّد بنقرة واحدة والصقه مباشرة في مشروعك.
Common Use Cases
- عملاء API مكتوبو الأنواع
- حوّل عيّنة استجابة REST أو GraphQL إلى بنى serde لعميل reqwest أو مشابه دون كتابة كود فكّ التسلسل النمطي يدوياً.
- تحليل الإعدادات والتجهيزات
- ولّد بنى لملفات إعداد JSON أو تجهيزات الاختبار أو حمولات webhook التي تحتاج إلى فكّ تسلسلها بـserde_json.
- النمذجة السريعة
- الصق حمولة غير مألوفة لترى شكلها فوراً كأنواع Rust — طريقة سريعة لاستكشاف API جديد قبل ربطه.
كيف يعمل التحويل
- الاستنتاج البنيوي
- يصبح كل كائن بنية مسماة؛ وتُزال تكرارات الأشكال المتطابقة فتحصل على بنية واحدة لا نسخ. تُدمج مصفوفات الكائنات مفتاحاً بمفتاح، والمفاتيح الغائبة من بعض العناصر تصبح Option<T>.
- كتابة أنواع الأرقام الصحيحة
- تُعيَّن الأعداد الصحيحة إلى i64، وتترقّى إلى u64 بعد i64::MAX، وتعود إلى f64 بعد u64. تُكتشف الأعداد العشرية من الرمز (1.0، 2e3) فلا يفشل فكّ تسلسل serde أبداً بسبب عدم تطابق عدد عشري مع حقل صحيح.
- معرّفات اصطلاحية قابلة للتصريف
- تصبح المفاتيح حقول snake_case مع #[serde(rename)] يعود إلى المفتاح الأصلي؛ وتُنظَّف الكلمات المفتاحية في Rust والأسماء المكرّرة والمفاتيح غير المعرّفات فيُصرَّف الإخراج دائماً.
- 100% على جانب المتصفح
- يجري التحليل والتوليد في متصفحك دون أي طلبات شبكة، فتبقى بياناتك خاصة.
نصائح لبنى Rust نظيفة
- سمِّ بنيتك الجذرية
- عيّن اسماً جذرياً ذا معنى (مثل User أو ApiResponse) بدلاً من الافتراضي Root لكود مقروء.
- أضف serde_json عند الحاجة فقط
- يظهر serde_json::Value مع المصفوفات الفارغة أو المختلطة الأنواع والحقول الفارغة فقط. أعطِ تلك الحقول نوعاً محدّداً من عيّنة أغنى إن استطعت، أو أضف serde_json إلى Cargo.toml.
- راجع Option مقابل المطلوب
- تُعلَّم الحقول Option<T> فقط عندما تحذفها عيّنة. الصق حمولة تمثيلية كي تستنتج الأداة الحقول المطلوبة والاختيارية بدقة.
الأسئلة الشائعة
كيف أحوّل JSON إلى بنية Rust؟
هل يولّد مشتقات serde؟ وهل أحتاج إلى serde وserde_json؟
كيف أستخدم البنية المُولَّدة لتحليل JSON؟
كيف تُعالَج الحقول الاختيارية والفارغة؟
كيف يعالج مفاتيح camelCase والكلمات المفتاحية في Rust؟
هل يمكنه استخدام #[serde(rename_all)] بدل إعادة التسمية لكل حقل؟
أي نوع رقمي في Rust يستخدم؟
كيف تُكتب أنواع التواريخ والطوابع الزمنية؟
كيف أتعامل مع الكائنات ذات المفاتيح الديناميكية أو غير المعروفة؟
هل بيانات JSON الخاصة بي خاصة وآمنة؟
هل يمكنني توليد بنى Rust بسيطة دون serde؟
هل الأداة مجانية؟ وهل أحتاج إلى حساب؟
أدوات ذات صلة
عرض جميع الأدوات →محوّل Base64 — ترميز وفك ترميز أونلاين
الترميز والتنسيق
رمّز وفك ترميز Base64 مجاناً أونلاين — محوّل فوري مع دعم UTF-8 والرموز التعبيرية. خصوصية 100% — يعمل في متصفّحك. جرّبه الآن.
محوّل Base64 إلى صورة أونلاين
الترميز والتنسيق
فك ترميز سلسلة Base64 أو عنوان URI للبيانات إلى صورة داخل متصفّحك. عاين واقرأ الأبعاد ونوع MIME ثم نزّل كـ PNG أو JPG أو GIF أو SVG. بلا رفع.
محوّل CSV إلى JSON
الترميز والتنسيق
حوّل CSV إلى JSON في متصفحك. RFC 4180، استنتاج الأنواع، صف العنوان، أمان الأعداد الكبيرة. خصوصية 100%.
محوّل .env إلى JSON
الترميز والتنسيق
الصق ملف .env واحصل على JSON فورًا. كلمات مرور قاعدة بياناتك ومفاتيح API لا تغادر متصفحك أبدًا — خاص 100٪، بلا رفع، محلّل dotenv مجاني.
فكّ كيانات HTML المجانية — فكّ تهريب الرموز
الترميز والتنسيق
فُكّ كيانات HTML وفُكّ تهريب HTML أونلاين — مجانًا، بلا تسجيل، 100% داخل متصفحك. يحوّل المراجع بالاسم والعشرية والسداسية إلى أحرف؛ لا يُرفع أبدًا.
ترميز كيانات HTML المجانية — تهريب الرموز
الترميز والتنسيق
رمّز كيانات HTML وهرّب الأحرف الخاصة (< > & " ') أونلاين — مجانًا، بلا تسجيل، 100% داخل متصفحك. خرج بالاسم أو العشري أو السداسي عشري؛ لا يُرفع أبدًا.