गो में स्ट्रिंग स्प्लिट के साथ कस्टम अनमर्शल
JSON डेटा के साथ काम करते समय, विशिष्ट के लिए अनमर्शलिंग प्रक्रिया को बदलने या अनुकूलित करने की आवश्यकता अक्सर उत्पन्न होती है डेटा के प्रकार। इस मामले में, हम अल्पविराम से अलग किए गए मानों वाली JSON स्ट्रिंग को अनमर्शलिंग के दौरान []स्ट्रिंग स्लाइस में विभाजित करना चाहते हैं।
इसे प्राप्त करने के लिए, आइए []स्ट्रिंग प्रकार के लिए एक कस्टम अनमर्शलर लागू करें:
type strslice []string
func (ss *strslice) UnmarshalJSON(data []byte) error {
var s string
if err := json.Unmarshal(data, &s); err != nil {
return err
}
*ss = strings.Split(s, "-")
return nil
}
यह कस्टम अनमर्शलर कच्चे JSON डेटा को इनपुट के रूप में लेता है और इसे निर्दिष्ट डिलीमीटर ("-" इस मामले में) पर विभाजित करके स्ट्रिंग के एक स्लाइस में परिवर्तित करता है।
हमारे मूल में संरचना, अब हम विषय क्षेत्र के लिए इस कस्टम प्रकार का उपयोग कर सकते हैं:
type Student struct {
StudentNumber int `json:"student_number"`
Name string `json:"name"`
Subjects strslice `json:"subjects"`
}
यह हमें JSON डेटा को सीधे संरचना में अनमर्शल करने की अनुमति देता है, विषय फ़ील्ड स्वचालित रूप से अलग-अलग स्ट्रिंग्स में विभाजित हो जाती है:
json := `{"student_number":1234567, "name":"John Doe", "subjects":"Chemistry-Maths-History-Geography"}`
var s Student
if err := json.Unmarshal([]byte(json), &s); err != nil {
panic(err)
}
fmt.Println(s) // Output: {1234567 John Doe [Chemistry Maths History Geography]}
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3