واجهات JSON
JSON APIs
تطبيق
~25 دقيقة
واجهات JSON — JSON APIs
معظم التطبيقات الحديثة تتواصل عبر JSON. Go تأتي مع حزمة encoding/json قوية تُحوّل بين Go structs و JSON بسلاسة.
تشفير JSON — Marshal
main.go
Output:
فك تشفير JSON — Unmarshal
main.go
Output:
بناء REST API كامل
main.go
Output:
وسوم JSON المهمة — JSON Tags
type Example struct {
Field1 string `json:"field_1"` // اسم مخصص
Field2 int `json:"field_2,omitempty"` // حذف إذا صفر
Field3 bool `json:"-"` // تجاهل تماماً
Field4 string `json:"field_4,string"` // تشفير كنص
}
json.Encoder vs json.Marshal
// Marshal — يُنتج []byte — عندما تحتاج النتيجة كنص
data, err := json.Marshal(obj)
// Encoder — يكتب مباشرة لـ io.Writer — أفضل للـ HTTP
json.NewEncoder(w).Encode(obj)
// Decoder — يقرأ من io.Reader — أفضل لقراءة الطلب
json.NewDecoder(r.Body).Decode(&obj)
تحدي — Challenge
فك تشفير JSON لمنتج واطبعه بتنسيق محدد