गोलांग में अनारक्षित होने पर जेसन में कोई फ़ील्ड नहीं मिला तो क्या कोई त्रुटि उत्पन्न करना संभव है? मैं इसे दस्तावेज में नहीं मिला। क्या कोई टैग है जो फ़ील्ड को आवश्यकतानुसार निर्दिष्ट करता है?गोलांग में Unmarshaling जेसन: आवश्यक फ़ील्ड?
28
A
उत्तर
34
encoding/json
पैकेज में कोई टैग नहीं है जो "आवश्यक" फ़ील्ड सेट करता है। आपको या तो अपनी खुद की MarshalJSON()
विधि लिखनी होगी, या गायब फ़ील्ड के लिए पोस्ट चेक करना होगा।
type JsonStruct struct {
String *string
Number *float64
}
पूर्ण काम कर उदाहरण:
package main
import (
"fmt"
"encoding/json"
)
type JsonStruct struct {
String *string
Number *float64
}
var rawJson = []byte(`{
"string":"We do not provide a number"
}`)
func main() {
var s *JsonStruct
err := json.Unmarshal(rawJson, &s)
if err != nil {
panic(err)
}
if s.String == nil {
panic("String is missing or null!")
}
if s.Number == nil {
panic("Number is missing or null!")
}
fmt.Printf("String: %s Number: %f\n", *s.String, *s.Number)
}
2
फ़ील्ड मौजूद जांचने के लिए, आप क्रम में संकेत का उपयोग करने के लापता/बातिल और शून्य मान के बीच भेद करना होगा
आप फ़ील्ड को एक पॉइंटर बनाने के बिना एक विशिष्ट प्रकार (इसलिए कुछ जसन परतों में दफन किए गए एक आवश्यक फ़ील्ड) के लिए unmarshalling को ओवरराइड भी कर सकते हैं।
type EnumItem struct {
Named
Value string
}
func (item *EnumItem) UnmarshalJSON(data []byte) (err error) {
required := struct {
Value *string `json:"value"`
}{}
all := struct {
Named
Value string `json:"value"`
}{}
err = json.Unmarshal(data, &required)
if err != nil {
return
} else if required.Value == nil {
err = fmt.Errorf("Required field for EnumItem missing")
} else {
err = json.Unmarshal(data, &all)
item.Named = all.Named
item.Value = all.Value
}
return
}
संबंधित मुद्दे
- 1. JSON स्कीमा: आवश्यक फ़ील्ड
- 2. पाइसन में पार्सिंग जेसन फ़ील्ड
- 3. आवश्यक फ़ील्ड सत्यापित करने के लिए आवश्यक फ़ील्ड वैलिडेटरबॉक्स
- 4. गोलांग में इंटरफ़ेस में अनमशाल जेसन कैसे करें {}?
- 5. आवश्यक फ़ील्ड सत्यापनकर्ता
- 6. ModelState हमेशा आवश्यक फ़ील्ड
- 7. php खाली फ़ील्ड आवश्यक
- 8. एमवीसी आवश्यक फ़ील्ड सत्यापन
- 9. आवश्यक फ़ील्ड 'client_protocol' अनसेट
- 10. jQuery फ़ील्ड इनपुट फ़ील्ड के लिए आवश्यक
- 11. जावा: जेसन की कुंजी/फ़ील्ड
- 12. गोलांग
- 13. आवश्यक फ़ील्ड सत्यापनकर्ता में संख्या सत्यापन
- 14. रेल में आवश्यक फ़ील्ड कैसे बनाएं?
- 15. गोलांग - जेएसओएन फ़ील्ड सेट नल बनाम फ़ील्ड पर सेट नहीं है
- 16. ASP.NET MVC आवश्यक फ़ील्ड संकेतक
- 17. स्प्रिंग "typemismatch" और आवश्यक फ़ील्ड
- 18. गोलांग एक्सएमएल उमरशाल और समय। समय फ़ील्ड
- 19. रेट्रोफिट वैकल्पिक और आवश्यक फ़ील्ड
- 20. गोलांग structs में फ़ील्ड सेट और कैसे प्राप्त करें?
- 21. गोलांग जेसन उमरशाल "जेएसओएन इनपुट का अप्रत्याशित अंत"
- 22. जेसन
- 23. फ़ील्ड में लॉगस्टैश जेसन संदेश को विघटित करें
- 24. आवश्यक फ़ील्ड सत्यापन JQuery पॉपअप एमवीसी 4
- 25. एक सशर्त आवश्यक फ़ील्ड कैसे जोड़ें?
- 26. Django बाकी फ्रेमवर्क serializer आवश्यक फ़ील्ड = false
- 27. jQuery मान्य प्लगइन सशर्त आवश्यक फ़ील्ड
- 28. एएसपी: आवश्यक फ़ील्ड वैलिडेटर और रेडियोबुटन
- 29. आवश्यक फ़ील्ड के साथ रेल ड्रॉपडाउन मेनू
- 30. jQueryValidate - आवश्यक फ़ील्ड - निर्भर करता है
या आप केवल डिफ़ॉल्ट मान की जांच कर सकते हैं, जो कि ज्यादातर मामलों के लिए पर्याप्त हो सकता है (जब तक कि आप संख्याओं के साथ काम नहीं कर रहे हों)। – Matt3o12
लेकिन क्या होगा यदि "आवश्यक फ़ील्ड" का मान डिफ़ॉल्ट मान है? – AJPennster
यदि किसी संख्या का आवश्यक फ़ील्ड 0 होना संभव है और आपको यह भी जांचना होगा कि यह प्रदान किया गया है या नहीं, तो स्ट्रिंग का उपयोग किसी इनपुट की जांच करने की अनुमति देने के लिए करें और उसके बाद स्ट्रिंग को किसी नंबर पर कनवर्ट करें। – Zanven