مطور / JSON
JSON إلى هيكل Go
ألصق عيّنة JSON واحصل على تعريفات هياكل Go بأسماء حقول مُصدّرة، والاختصارات التي تتوقعها أدوات فحص Go، ووسوم json، لتلصقها مباشرةً في التعليمات البرمجية.
JSON إلى هيكل Go: يقرأ المحوّل JSON في المتصفح وينشئ هيكلًا لكل كائن. تتحول المفاتيح إلى أسماء CamelCase مُصدّرة، مع كتابة اختصارات مثل ID وURL وHTTP بأحرف كبيرة، وفق توصيات golint، بينما يحتفظ كل حقل بمفتاحه الأصلي داخل وسم json، مع تنسيق يشبه ما ينتجه gofmt. تُدمج الكائنات الموجودة في مصفوفة، لذلك يحصل المفتاح المفقود من بعضها على omitempty، ويتحول المفتاح الذي تكون قيمته null أحيانًا إلى مؤشر. تتحول الأعداد الصحيحة إلى int64، ما لم يظهر عدد عشري في الموضع نفسه، وعندها تصبح float64. يعمل 100% محليًا في المتصفح، من دون رفع أي ملفات إلى الخادم.
- الفئة
- أدوات المطورين
- مرات التشغيل
- في المتصفح
- التكلفة
- مجاني · بلا تسجيل
- التوفر
- جاهز للاستخدام
تعمل بالكامل في المتصفح
انتقال
type User struct {
ID int64 `json:"id"`
UserName string `json:"user_name"`
AvatarURL string `json:"avatar_url"`
Score float64 `json:"score"`
Tags []string `json:"tags"`
Address Address `json:"address"`
}
type Address struct {
City string `json:"city"`
ZipCode string `json:"zip_code"`
}تُضاف omitempty إلى المفاتيح المفقودة من بعض الكائنات في المصفوفة، بينما تصبح المفاتيح التي تكون قيمتها أحيانًا null مؤشرات. تحقّق من الأنواع بمقارنتها مع توثيق API: فالعينة تعرض ما تحتويه فقط.
من عيّنة إلى نوع
يفك Go ترميز JSON إلى هياكل باستخدام encoding/json، إذ يطابق كل مفتاح بحقل وفق وسم json الخاص به، أو وفق الاسم مع تجاهل حالة الأحرف عند غياب الوسم. ولا تُملأ إلا الحقول المصدَّرة، أي التي تبدأ بحرف كبير، ولهذا كُتبت كل الحقول هنا بحروف كبيرة واحتفظت بالمفتاح الأصلي في وسمها.
العينة توضّح محتواها فقط. فقائمة المستخدمين التي يفتقد أحدهم بريداً إلكترونياً تخبر المحوّل بأن البريد الإلكتروني اختياري، أما الكائن المفرد فلا يفعل ذلك. الصق عدة كائنات تمثيلية داخل مصفوفة عندما تتوفر لديك، ثم تحقّق من النتيجة مقابل توثيق API. يساعد منسّق JSON على اكتشاف بنية الاستجابة الطويلة أولاً.
لغات ومخططات أخرى
يمكن تحويل العينة نفسها إلى واجهات TypeScript باستخدام محوّل JSON إلى TypeScript، لواجهة أمامية تقرأ API نفسه، أو إلى JSON Schema للتحقّق من البيانات عند الحدود.
طريقة الاستخدام
- ألصق كائن JSON أو مصفوفة JSON، مثل استجابة من API.
- سمِّ النوع الأعلى واختر بين الهياكل المنفصلة أو المتداخلة.
- انسخ تعليمات Go البرمجية.
الخصوصية والقيود
يُحوَّل JSON في المتصفح ولا يُرفع إلى أي مكان.
أدوات ذات صلة
الأسئلة الشائعة
لماذا يُسمّى user_id باسم UserID وليس UserId؟
تكتب قواعد Go الاختصارات بحالة واحدة، لذلك تكون الأسماء UserID وAPIKey وAvatarURL. يستخدم المحوّل قائمة الاختصارات من golint، وهي أداة الفحص التي أشاعت هذه القاعدة.
متى يحصل الحقل على omitempty أو مؤشر؟
عندما تكون العيّنة مصفوفة من الكائنات ويكون المفتاح مفقودًا من بعضها، يحصل الحقل على omitempty، ولذلك يتركه التسلسل خارج الناتج عندما تكون قيمته فارغة. وعندما تكون قيمة المفتاح null في بعض الكائنات، يتحول الحقل إلى مؤشر، بحيث يمكن أن تمثل nil القيمة null. يمكنك أيضًا إضافة omitempty إلى كل حقل.
لماذا int64 وfloat64؟
يحتوي JSON على نوع واحد للأعداد. تتحول القيمة المكتوبة من دون فاصلة عشرية إلى int64، وأي قيمة تحتوي على كسر عشري تصبح float64. إذا كان من الممكن أن يتجاوز المعرّف 2^53 أو كان في الحقيقة سلسلة نصية متخفية، فغيّر النوع يدويًا، لأن العيّنة تعرض القيم الموجودة فيها فقط.
ماذا يحدث للقيم null أو المصفوفات الفارغة؟
عند عدم توفر معلومات كافية، يحصل الحقل الذي تكون قيمته null دائمًا، أو المصفوفة الفارغة، على النوع any (interface{})، الذي يقبل أي قيمة. استبدله بالنوع الحقيقي عندما تعرفه.
أداة مجانية · عدد مرات الاستخدام في المتصفح · لا يتطلب حسابًا