गोलांग में नेस्टेड JSON डेटा तक पहुंच: "टाइप इंटरफ़ेस {} इंडेक्सिंग का समर्थन नहीं करता है" त्रुटि को हल करना
नेस्टेड JSON प्रतिक्रियाओं के साथ काम करते समय गोलांग, डेटा प्रकारों को सही ढंग से संभालना आवश्यक है। यदि आपको "अमान्य ऑपरेशन: d["डेटा"] (टाइप इंटरफ़ेस {} इंडेक्सिंग का समर्थन नहीं करता है)" त्रुटि का सामना करना पड़ता है, तो यह आमतौर पर तब होता है क्योंकि आप सीधे इंटरफ़ेस {} वेरिएबल को इंडेक्स करने का प्रयास कर रहे हैं।
To इस समस्या को हल करने के लिए, आपको सही डेटा प्रकार निर्दिष्ट करने के लिए किसी अन्य प्रकार का दावा करने की आवश्यकता है। आइए समाधान में गोता लगाएँ:
एक मध्यवर्ती मानचित्र पर अभिकथन टाइप करें
वेरिएबल d टाइप इंटरफ़ेस का है{}, जो गोलांग में एक गतिशील प्रकार है। इसके फ़ील्ड तक पहुंचने के लिए आपको इसे एक विशिष्ट प्रकार में टाइप करना होगा। इस मामले में, हम जानते हैं कि प्रतिक्रिया में एक "डेटा" फ़ील्ड होता है जिसमें स्ट्रिंग्स से लेकर इंटरफ़ेस तक का एक मानचित्र होता है। तो, आप इंडेक्स करने से पहले d को मैप[स्ट्रिंग]इंटरफ़ेस{} में डालने के लिए एक और प्रकार का दावा जोड़ सकते हैं:
test := d.(map[string]interface{})["data"].(map[string]interface{})["type"]
अब, परीक्षण नेस्टेड डेटा मानचित्र के भीतर "प्रकार" फ़ील्ड का मान रखेगा।
वैकल्पिक d
पर अभिकथन टाइप करें यदि आप प्रारंभ से ही d को एक मानचित्र[स्ट्रिंग]इंटरफ़ेस{} के रूप में घोषित करते हैं, तो आप पहले प्रकार के अभिकथन को छोड़ सकते हैं:
var d map[string]interface{}
...
test := d["data"].(map[string]interface{})["type"]
यह सीधे d को सही मानचित्र प्रकार में डाल देगा, जिससे मध्यवर्ती प्रकार के दावे की आवश्यकता समाप्त हो जाएगी।
निष्कर्ष
डेटा प्रकारों को समझकर और उचित प्रकार के दावे करके, आप अनुक्रमण त्रुटियों का सामना किए बिना गोलांग में नेस्टेड JSON प्रतिक्रियाओं तक पहुंच सकते हैं और उनके साथ काम कर सकते हैं। याद रखें, गो का इंटरफ़ेस {} बहुमुखी है लेकिन विशिष्ट प्रकारों तक पहुंचने के लिए अतिरिक्त प्रसंस्करण की आवश्यकता हो सकती है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3