गो में JSON प्रतिक्रियाओं के साथ काम करते समय, नेस्टेड ऐरे के भीतर तत्वों तक पहुंच चुनौतियों का सामना कर सकती है। अक्सर, विशिष्ट डेटा बिंदुओं को पुनः प्राप्त करने का प्रयास करते समय "टाइप इंटरफ़ेस {} इंडेक्सिंग का समर्थन नहीं करता" जैसी त्रुटियां उत्पन्न होती हैं।
इसे हल करने के लिए, गो में JSON प्रतिक्रियाओं की अंतर्निहित प्रकृति को समझना महत्वपूर्ण है। डिफ़ॉल्ट रूप से, सरणियों को []इंटरफ़ेस{} स्लाइस के रूप में दर्शाया जाता है, जबकि शब्दकोशों को मानचित्र[स्ट्रिंग]इंटरफ़ेस{} मानचित्रों के रूप में दर्शाया जाता है। नतीजतन, इंटरफ़ेस चर में अनुक्रमण के लिए समर्थन की कमी होती है।
नेस्टेड तत्वों तक पहुंचने के लिए, प्रकार के दावे आवश्यक हो जाते हैं। एक दृष्टिकोण त्रुटि जाँच के बिना निम्नलिखित करना है:
objects := result["objects"].([]interface{})
first := objects[0].(map[string]interface{})
fmt.Println(first["ITEM_ID"])
हालाँकि, यदि प्रकार संरेखित नहीं होते हैं तो यह विधि घबराहट पैदा कर सकती है। एक अधिक मजबूत दृष्टिकोण दो-रिटर्न फॉर्म का उपयोग करना और संभावित त्रुटियों को संभालना है:
objects, ok := result["objects"].([]interface{})
if !ok {
// Handle error
}
यदि आपका JSON एक सुसंगत संरचना का अनुसरण करता है, तो सीधे एक कस्टम प्रकार में डिकोडिंग पर विचार करें:
type Result struct {
Query string `json:"query"`
Count int `json:"count"`
Objects []struct {
ItemId string `json:"ITEM_ID"`
ProdClassId string `json:"PROD_CLASS_ID"`
Available int `json:"AVAILABLE"`
} `json:"objects"`
}
एक बार डिकोड हो जाने पर, आप परिणाम जैसे नेस्टेड तत्वों तक निर्बाध रूप से पहुंच सकते हैं।ऑब्जेक्ट्स[0].आइटमआईडी।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3