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

गोलांग में अनमर्शलिंग के दौरान JSON फ़ील्ड को स्ट्रिंग स्लाइस में कैसे विभाजित करें?

2024-11-24 को प्रकाशित
ब्राउज़ करें:521

How to Split a JSON Field into a String Slice During Unmarshaling in Golang?

गोलांग में स्ट्रिंग स्प्लिट के साथ कस्टम अनमर्शल

समस्या:

जब एक होता है तो JSON अनमर्शल को संभालना फ़ील्ड को स्ट्रिंग ऑपरेशंस का उपयोग करके एक स्लाइस में विभाजित करने की आवश्यकता होती है। विशेष रूप से, प्रदान किए गए JSON में "विषय" फ़ील्ड को []स्ट्रिंग बनाने के लिए '-' पर विभाजित करने की आवश्यकता होती है।

समाधान:

इसे प्राप्त करने के लिए, हम यह कर सकते हैं एक कस्टम स्ट्रिंग स्लाइस प्रकार परिभाषित करें और इसके लिए json.Unmarshaler इंटरफ़ेस लागू करें। यहां बताया गया है:

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
}

यह कस्टम प्रकार हमें "विषयों" फ़ील्ड को एक स्ट्रिंग के रूप में अनमार्शल करने और फिर स्वचालित रूप से इसे एक स्लाइस में विभाजित करने की अनुमति देगा।

संशोधित संरचना:

अब, हम "विषयों" के लिए कस्टम स्ट्रस्लाइस प्रकार का उपयोग करने के लिए अपनी छात्र संरचना को अपडेट कर सकते हैं फ़ील्ड:

type Student struct {
    StudentNumber int      `json:"student_number"`
    Name          string   `json:"name"`
    Subjects      strslice `json:"subjects"`
}

उपयोग:

इन संशोधनों के साथ, अब हम दिए गए JSON को अनमर्शल कर सकते हैं और "विषयों" फ़ील्ड को स्वचालित रूप से विभाजित कर सकते हैं:

func main() {
    var s Student
    err := json.Unmarshal([]byte(src), &s)
    fmt.Println(s, err)
}

const src = `{"student_number":1234567, "name":"John Doe", "subjects":"Chemistry-Maths-History-Geography"}`

आउटपुट:

{1234567 John Doe [Chemistry Maths History Geography]} 

यह दृष्टिकोण JSON डेटा को अनमर्शल करते हुए फ़ील्ड परिवर्तनों को संभालने के लिए एक स्वच्छ और अनुकूलन योग्य तरीका प्रदान करता है।

नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3