YAML डायनेमिक कुंजियों के साथ गो कोड को पार्स करना
डायनामिक कुंजियों वाली YAML फ़ाइल में गो कोड को पार्स करने के लिए, इन चरणों का पालन करें:
1. yaml लाइब्रेरी स्थापित करें:
go get gopkg.in/yaml.v2
2 प्राप्त करें :
YAML डेटा का प्रतिनिधित्व करने के लिए एक संरचना बनाता है। यदि आप सभी संभावित कुंजियाँ जानते हैं तो आप उन्हें नियमित फ़ील्ड का उपयोग करके परिभाषित कर सकते हैं, अन्यथा आप गतिशील कुंजियाँ शामिल करने के लिए मानचित्र [स्ट्रिंग] इंटरफ़ेस {} फ़ील्ड का उपयोग कर सकते हैं।
3. एक कस्टम अनमर्शलर का उपयोग करें (वैकल्पिक):
यदि आपको YAML डेटा को पार्स करने के तरीके को अनुकूलित करने की आवश्यकता है, तो आप एक कस्टम अनमर्शलर का उपयोग कर सकते हैं। यह आपको गतिशील कुंजियाँ या अन्य जटिल पार्सिंग परिदृश्यों को संभालने में मदद कर सकता है।
4. YAML डेटा को पार्स करें:
YAML डेटा को पार्स करने और इसे एक मॉडल संरचना में डिसेरिएलाइज़ करने के लिए yaml.Unmarshal फ़ंक्शन का उपयोग करें।
उदाहरण:
निम्न उदाहरण दिखाता है कि डायनामिक कुंजियों के साथ एक YAML फ़ाइल को कैसे पार्स किया जाए:
package main
import (
"fmt"
"gopkg.in/yaml.v2"
)
var data = `
---
development:
skip-header-validation: true
V1:
current: "1.0.0"
mime_types:
- application/vnd.company.jk.identity json;
- application/vnd.company.jk.user json;
- application/vnd.company.jk.role json;
- application/vnd.company.jk.scope json;
- application/vnd.company.jk.test json;
skip-mime-type-validation: true
skip-version-validation: true
V2:
current: "2.0.0"
mime_types:
- application/vnd.company.jk.identity json;
- application/vnd.company.jk.user json;
- application/vnd.company.jk.role json;
- application/vnd.company.jk.scope json;
- application/vnd.company.jk.test json;
`
type MajorVersion struct {
Current string `yaml:"current"`
MimeTypes []string `yaml:"mime_types"`
SkipVersionValidation bool `yaml:"skip-version-validation"`
SkipMimeTypeValidation bool `yaml:"skip-mime-type-validation"`
}
type Environment struct {
SkipHeaderValidation bool
Versions map[string]MajorVersion `yaml:",inline"`
}
func main() {
e := map[string]Environment{}
if err := yaml.Unmarshal([]byte(data), &e); err != nil {
fmt.Println(err.Error())
}
fmt.Printf("%#v\n", e)
}
आउटपुट:
map[string]main.Environment{ "development": { SkipHeaderValidation: true, Versions: { "V1": { Current: "1.0.0", MimeTypes: {"application/vnd.company.jk.identity json;", "application/vnd.company.jk.user json;", "application/vnd.company.jk.role json;", "application/vnd.company.jk.scope json;", "application/vnd.company.jk.test json;"}, SkipVersionValidation: true, SkipMimeTypeValidation: true, }, "V2": { Current: "2.0.0", MimeTypes: {"application/vnd.company.jk.identity json;", "application/vnd.company.jk.user json;", "application/vnd.company.jk.role json;", "application/vnd.company.jk.scope json;", "application/vnd.company.jk.test json;"}, SkipVersionValidation: false, SkipMimeTypeValidation: false, }, }, }, }
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3