لنتعرف الآن على فك ترميز بيانات JSON إلى قيم Go. إليك مثالًا
على هيكل بيانات عام.
byt:=[]byte(`{"num":6.13,"strs":["a","b"]}`)
علينا توفير متغير تضع فيه حزمة JSON البيانات الناتجة عن فك
الترميز. ستحتوي map[string]any هذه على خريطة تربط
السلاسل النصية بقيم من أي نوع بيانات.
vardatmap[string]any
هذا هو فك الترميز الفعلي، مع التحقق من الأخطاء المرتبطة به.
نتجاهل الأخطاء في هذه الأمثلة توخيًا للاختصار، لكن ينبغي في
الكود الفعلي التحقق دائمًا من الأخطاء والتعامل معها.
يمكننا أيضًا فك ترميز JSON إلى أنواع بيانات مخصصة. يضيف ذلك
مزيدًا من أمان الأنواع إلى برامجنا، ويلغي الحاجة إلى تأكيدات
الأنواع عند الوصول إلى البيانات الناتجة عن فك الترميز.
استخدمنا في الأمثلة أعلاه دائمًا البايتات والسلاسل النصية
كقيم وسيطة بين البيانات وتمثيل JSON على الخرج القياسي. يمكننا
أيضًا إرسال ترميزات JSON مباشرة إلى كائنات os.Writer مثل
os.Stdout، أو حتى إلى أجسام استجابات HTTP.