UTILS.
‎100%‎ داخل المتصفح
🐹

من JSON إلى Go Struct

حوّل عينة JSON إلى بُنى Go مُنمَّطة مع json tags. يستنتج int64 وfloat64 وbool والبُنى المتداخلة والشرائح في متصفحك.

المخرج

حول هذه الأداة

الصق عينة JSON فتُنشئ هذه الأداة بُنى Go جاهزة للاستخدام، مكتملة بـ `json:"field"` tags لكل مفتاح. يعمل كل شيء محليًا في متصفحك، فلا تُرفع بيانات JSON إلى أي مكان.

يستدعي المولّد JSON.parse ويمشي عبر النتيجة تعاوديًا: تصبح النصوص string، والقيم المنطقية bool، والأعداد الصحيحة int64، والأعداد ذات العلامة العشرية float64، وnull تصبح interface{}، وتصبح المصفوفات شريحة من نوع أول عنصر ([]interface{} عندما تكون فارغة)، ويصبح كل كائن بنية متداخلة مسمّاة خاصة به. تُحوَّل أسماء الحقول إلى PascalCase مُصدَّرة (مع تحويل المختصرات الشائعة مثل ID وURL إلى أحرف كبيرة) مع الحفاظ على المفتاح الأصلي في الـ json tag.

استخدمها لتهيئة نماذج Go من استجابة API أو ملف إعداد، ثم رتّب الأنواع يدويًا حيث يلزم. ولأن JSON ليس فيه نوع صحيح منفصل، تُقرأ قيمة مثل 1.0 كعدد صحيح؛ أضف علامة عشرية (1.5) إن أردت float64.

الأسئلة الشائعة

كيف تُنمَّط الأعداد؟
القيمة المُحلَّلة بلا جزء كسري تصبح int64؛ والقيمة ذات العلامة العشرية تصبح float64. لا يستطيع JSON التمييز بين 1 و1.0، فكلاهما يُقرأ int64.
ماذا يحدث للكائنات والمصفوفات المتداخلة؟
يصبح كل كائن بنية مسمّاة منفصلة؛ وتصبح المصفوفات شريحة من نوع أول عنصر، أو []interface{} إن كانت المصفوفة فارغة أو العنصر null.
هل أسماء الحقول صالحة في Go؟
تُحوَّل المفاتيح إلى PascalCase مُصدَّرة ويُحفظ المفتاح الأصلي في json tag، فتدور رحلة JSON بشكل صحيح حتى لأسماء مثل user_id أو first-name.
هل تُرسل بيانات JSON إلى خادم؟
لا. يحدث التحليل وتوليد الشفرة بالكامل في متصفحك؛ لا يُرفع أو يُخزَّن شيء.

المزيد من الأدوات