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

गो में JSON अनमर्शलिंग के लिए UTF-8 स्ट्रिंग्स को []बाइट में कैसे बदलें?

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

How to Convert UTF-8 Strings to []byte for JSON Unmarshalling in Go?

यूटीएफ-8 स्ट्रिंग्स को []बाइट

जेएसओएन के साथ काम करते समय, अनमर्शल फ़ंक्शन को []बाइट प्रकार के इनपुट की आवश्यकता होती है। हालाँकि, हमारा डेटा UTF-8 स्ट्रिंग के रूप में संग्रहीत किया जा सकता है। यह आलेख बताता है कि सफल अनमर्शलिंग के लिए UTF-8 स्ट्रिंग को []बाइट में कैसे परिवर्तित किया जाए।

गो विनिर्देश के अनुसार []बाइट(s)

, एक स्ट्रिंग को एक साधारण कास्टिंग का उपयोग करके []बाइट में परिवर्तित किया जा सकता है:

s := "some text"
b := []byte(s)

हालांकि, यह रूपांतरण स्ट्रिंग की सामग्री की एक प्रति बनाता है, जो बड़ी स्ट्रिंग्स के लिए अक्षम हो सकता है।

कुशलता के लिए io.Reader का उपयोग करना अनमर्शल

एक वैकल्पिक दृष्टिकोण से निर्मित io.Reader का उपयोग करना है स्ट्रिंग:

s := `{"somekey":"somevalue"}`
reader := strings.NewReader(s)
decoder := json.NewDecoder(reader)
var result interface{}
decoder.Decode(&result)

यह विधि स्ट्रिंग को कॉपी करने से बचाती है और बड़े इनपुट के लिए अधिक कुशल है।

विभिन्न परिदृश्यों के लिए विचार

  • छोटे JSON टेक्स्ट के लिए, []बाइट(ओं) का उपयोग करके सीधे []बाइट में कनवर्ट करना है स्वीकार्य।
  • बड़े JSON टेक्स्ट के लिए या io.Readers के साथ काम करते समय, strings.NewReader और json.NewDecoder का उपयोग बेहतर दक्षता प्रदान करता है।

संक्षेप में, UTF-8 स्ट्रिंग्स को परिवर्तित करना []अनमर्शलिंग के लिए बाइट में या तो सीधे कास्टिंग शामिल है या बड़े इनपुट के कुशल संचालन के लिए io.Reader का उपयोग करना शामिल है। चुनाव आवेदन की विशिष्ट आवश्यकताओं पर निर्भर करता है।

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

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

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

Copyright© 2022 湘ICP备2022001581号-3