"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > प्रश्न प्रारूप की आवश्यकता को ध्यान में रखते हुए, यहां कुछ शीर्षक विकल्प दिए गए हैं: * **`json.Unmarshal` गो में संरचना के बजाय मानचित्र क्यों लौटाता है?** (सरल और सीधा) * **गोलंग: अनमर्शलिंग इंट

प्रश्न प्रारूप की आवश्यकता को ध्यान में रखते हुए, यहां कुछ शीर्षक विकल्प दिए गए हैं: * **`json.Unmarshal` गो में संरचना के बजाय मानचित्र क्यों लौटाता है?** (सरल और सीधा) * **गोलंग: अनमर्शलिंग इंट

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

Here are a few title options, keeping in mind the need for a question format:

* **Why Does `json.Unmarshal` Return a Map Instead of a  Struct in Go?** (Simple and direct)
* **Golang: Unmarshaling into an Interface - Why is My Struct a Map?** (More specif

json.Unmarshal अपेक्षित संरचना के बजाय एक नक्शा क्यों लौटाता है?

इस खेल के मैदान के उदाहरण में, json.Unmarshal अपेक्षित संरचना के बजाय एक नक्शा लौटाता है: http ://play.golang.org/p/dWku6SPqj5.

समस्या उत्पन्न होती है क्योंकि एक इंटरफ़ेस{} पैरामीटर पास किया जाता है json.Unmarshal, और लाइब्रेरी इसे बाइट सरणी में अनमर्शल करने का प्रयास करती है। हालाँकि, लाइब्रेरी में संबंधित संरचना का सीधा संदर्भ नहीं है, भले ही इसमें एक प्रतिबिंबित प्रकार का संदर्भ हो।

समस्या निम्नलिखित कोड में है:

var ping interface{} = Ping{}
deserialize([]byte(`{"id":42}`), &ping)
fmt.Println("DONE:", ping) // It's a simple map now, not a Ping. Why?

इस समस्या को हल करने के लिए, या तो पिंग संरचना में स्पष्ट रूप से एक अमूर्त इंटरफ़ेस के रूप में एक पॉइंटर पास करें:

var ping interface{} = &Ping{}
deserialize([]byte(`{"id":42}`), ping)
fmt.Println("DONE:", ping)

वैकल्पिक रूप से, यदि कोई प्रत्यक्ष सूचक अनुपलब्ध है, तो रिफ्लेक्ट का उपयोग करके एक नया सूचक बनाएं, उसमें डीसेरिएलाइज़ करें, और फिर मान को वापस कॉपी करें:

var ping interface{} = Ping{}
nptr := reflect.New(reflect.TypeOf(ping))
deserialize([]byte(`{"id":42}`), nptr.Interface())
ping = nptr.Interface()
fmt.Println("DONE:", ping)
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3