"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > गो में ऑब्जेक्ट्स की एक श्रृंखला में नेस्टेड JSON को अनमर्शल कैसे करें?

गो में ऑब्जेक्ट्स की एक श्रृंखला में नेस्टेड JSON को अनमर्शल कैसे करें?

2024-12-21 को प्रकाशित
ब्राउज़ करें:664

How to Unmarshal Nested JSON into an Array of Objects in Go?

गो में ऑब्जेक्ट के ऐरे में नेस्टेड JSON को अनमर्शलिंग करना

समस्या

निम्न JSON डेटा पर विचार करें:

{
   "1001":{
      "level":10,
      "monster-id":1001,
      "skill-level":1,
      "aimer-id":301
   },
   "1002":{
      "level":12,
      "monster-id":1002,
      "skill-level":1,
      "aimer-id":302
   },
   "1003":{
      "level":16,
      "monster-id":1003,
      "skill-level":2,
      "aimer-id":303
   }
}

लक्ष्य इस JSON को मॉन्स्टर ऑब्जेक्ट्स की एक श्रृंखला में अनमार्शल करना है।

type Monster struct {
    MonsterId  int32
    Level      int32
    SkillLevel int32
    AimerId    int32
}

समाधान

इसे प्राप्त करने के लिए, इन चरणों का पालन करें:

  1. मॉन्स्टरकलेक्शन को परिभाषित करें: मॉन्स्टर का नक्शा रखने के लिए एक मॉन्स्टरकलेक्शन प्रकार बनाएं स्ट्रिंग कुंजियों के साथ ऑब्जेक्ट।
type MonsterCollection struct {
    Pool map[string]Monster
}
  1. पूल में सही कुंजी प्रकार:
  2. JSON डेटा में कुंजियों से मिलान करने के लिए पूल मैप के कुंजी प्रकार को स्ट्रिंग में बदलें।
func (mc *MonsterCollection) FromJson(jsonStr string) error {
    var data *map[string]Monster
    b := []byte(jsonStr)
    return json.Unmarshal(b, &data)
}
स्ट्रक्चर टैग का उपयोग करें:
    JSON में फ़ील्ड नाम निर्दिष्ट करने के लिए मॉन्स्टर स्ट्रक्चर में JSON स्ट्रक्चर टैग जोड़ें डेटा.
  • टाइप मॉन्स्टर स्ट्रक्चर { मॉन्स्टरआईडी int32 `json:"मॉन्स्टर-आईडी"` स्तर int32 `json:"स्तर"` स्किललेवल int32 `json:"कौशल-स्तर"` AimerId int32 `json:"aimer-id"` ) ) err := mc.FromJson(jsonStr)
  1. त्रुटियों की जांच करें: डिबगिंग उद्देश्यों के लिए FromJson द्वारा लौटाई गई किसी भी त्रुटि को संभालें।
  2. ऑब्जेक्ट तक पहुंचें : व्यक्तिगत मॉन्स्टर तक पहुंचने के लिए मॉन्स्टरकलेक्शन के पूल फ़ील्ड का उपयोग करें ऑब्जेक्ट्स.
आईडी, मॉन्स्टर के लिए:= रेंज एमसी.पूल { fmt.Println(आईडी, राक्षस) }
func (mc *MonsterCollection) FromJson(jsonStr string) error {
    var data *map[string]Monster
    b := []byte(jsonStr)
    return json.Unmarshal(b, &data)
}
इन चरणों का पालन करके, आप गो में मॉन्स्टर ऑब्जेक्ट की एक सरणी में नेस्टेड JSON डेटा को सफलतापूर्वक अनमर्शल कर सकते हैं।
    नवीनतम ट्यूटोरियल अधिक>

    चीनी भाषा का अध्ययन करें

    अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

    Copyright© 2022 湘ICP备2022001581号-3