"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تحليل JSON مع أزواج المفاتيح/القيمة المعروفة وغير المعروفة في بنية Go؟

كيفية تحليل JSON مع أزواج المفاتيح/القيمة المعروفة وغير المعروفة في بنية Go؟

تم النشر بتاريخ 2024-11-07
تصفح:315

How to Parse JSON with Known and Unknown Key/Value Pairs into a Go Struct?

إلغاء تنظيم JSON باستخدام أزواج المفاتيح/القيم التعسفية للهيكل

المشكلة

كيف يمكنني تحليل سلسلة JSON باستخدام أزواج المفاتيح/القيم المعروفة وغير المعروفة في هيكل الذهاب؟ يمكن أن يكون للحقول غير المعروفة أي اسم ونوع قيمة (سلسلة أو منطقية أو float64 أو int).

الحل

إنشاء بنية بالحقول المعروفة وشريحة من الخرائط للحقول غير المعروفة :

type Message struct {
    Known1   string `json:"known1"`
    Known2   string `json:"known2"`
    Unknowns []map[string]interface{}
}
قم بإلغاء تنظيم سلسلة JSON في هذه البنية:

json.Unmarshal([]byte(jsonMsg), &msg)
json.Unmarshal([]byte(jsonMsg), &msg)

البدائل

إلغاء التنظيم المزدوج:
  1. ]أولاً، إلغاء التنظيم في بنية مؤقتة تحتوي على الحقول المعروفة فقط.

    ثم قم بإلغاء التنظيم مرة أخرى في خريطة[string]interface{} واستخرج القيم غير المعروفة يدويًا.

    • إلغاء التنظيم وتحويل النوع:
  2. إلغاء التنظيم في خريطة[string]interface{}.
  3. التكرار عبر الخريطة واكتب تأكيد القيم للأنواع المناسبة .

    • الاعتبارات
    • جميع الحلول الثلاثة صالحة، ولكن أبسطها وأكثرها أناقة هو النهج الأولي القائم على البنية. إنه يتجنب الحاجة إلى عمليات إلغاء تنظيم إضافية أو تحويلات يدوية.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3