Go JSON: فهم Struct Tags وMarshal عمليًا
2025-01-30
في Go، أي خطأ بسيط في الوسوم قد يسبب حقولًا مفقودة أو أسماء غير متوقعة. فهم قواعد التحويل يوفر وقتًا كبيرًا في تكامل API.
Struct tags
وسم json:"name,omitempty" يحدد الاسم والحذف عند القيمة الصفرية، والحقول غير المصدرة لا تُسلسل.
type User struct {
ID int `json:"id"`
Name string `json:"name,omitempty"`
}Unmarshal
الأرقام داخل interface{} تصبح float64 افتراضيًا؛ استخدم json.Number أو structs لصرامة أعلى.
json.RawMessage
يسمح بتأجيل تحليل الجزء الداخلي، مفيد للحمولات متعددة الأشكال.
Marshal
يعتمد على reflection؛ في المسارات الحساسة جدًا يمكن تقييم مكتبات أسرع عند الحاجة.