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

كيفية إلغاء تنظيم JSON بكفاءة في الخريطة دون تكرار الحلقة؟

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

How to Efficiently Unmarshal JSON into a Map Without Loop Iteration?

فك تنظيم JSON بكفاءة في الخريطة

في مجال البرمجة، يلعب تحليل البيانات من مصادر خارجية دورًا حاسمًا. عند التعامل مع JSON، وهو تنسيق بيانات واسع الانتشار، تصبح القدرة على تنظيمه بكفاءة في الخريطة أمرًا ضروريًا.

لنفترض أنك واجهت بيانات JSON التالية:

{"fruits":["apple","banana","cherry","date"]}

وتهدف إلى تحميل "الفواكه" في واجهة الخريطة [سلسلة] {}. يتضمن النهج التقليدي تكرار كل عنصر وإدراجه في الخريطة عبر حلقة. ومع ذلك، توجد طريقة أكثر كفاءة تلغي الحاجة إلى تكرار الحلقة.

إلغاء التنظيم المباشر بدون تكرار

لإلغاء تنظيم بيانات JSON مباشرة في الخريطة المطلوبة بدون حلقة يدوية التكرار، اتبع الخطوات التالية:

  1. قم باستيراد الحزمة الضرورية: import "encoding/json"
  2. حدد متغير الخريطة لتلقي البيانات غير المنظمة: var m Map[string][] string
  3. استخدم json.Unmarshal لإلغاء تنظيم بيانات JSON في متغير الخريطة: json.Unmarshal(src_json, &m)
  4. الوصول إلى البيانات غير المنظمة من خلال الرجوع إلى مفتاح الخريطة: m["fruits" ][0]

مثال للتنفيذ

package main

import "fmt"
import "encoding/json"

func main() {
    src_json := []byte(`{"fruits":["apple","banana","cherry","date"]}`)
    var m map[string][]string
    err := json.Unmarshal(src_json, &m)
    if err != nil {
        panic(err)
    }
    fmt.Printf("%v", m["fruits"][0]) //apple
}

ملاحظة: يفترض هذا الأسلوب أن قيم JSON هي جميع السلاسل. إذا كانت القيم من نوع مختلف، فقد تحتاج إلى تعديل نوع الخريطة وفقًا لذلك (على سبيل المثال، Map[string][]interface{}).

أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3