क्या कोई तकनीकी कारण है कि अनावृत फ़ील्ड एन्कोडिंग/जेसन द्वारा क्यों शामिल नहीं हैं? यदि नहीं है और यह एक मनमाने ढंग से निर्णय है, तो एक अतिरिक्त बैक दरवाजा विकल्प ('+' कहें) जिसमें अप्रत्याशित हालांकि शामिल हो सकता है?JSON और बिना निर्यात किए गए फ़ील्ड से निपटना
इस कार्यक्षमता को प्राप्त करने के लिए निर्यात करने के लिए क्लाइंट कोड की आवश्यकता दुर्भाग्यपूर्ण लगती है, खासकर अगर निचला मामला encapsulation प्रदान कर रहा है या मार्शल संरचनाओं का निर्णय उनके डिजाइन के बाद बहुत बाद में आता है।
लोग इस से कैसे निपट रहे हैं? बस सबकुछ निर्यात करें?
इसके अलावा, फ़ील्ड नामों का निर्यात नहीं करना सुझाया गया मुहावरों का पालन करना मुश्किल बनाता है। मुझे लगता है कि यदि एक स्ट्रक्चर एक्स में फ़ील्ड वाई है, तो आपके पास एक्सेसर विधि वाई() नहीं हो सकती है। यदि आप वाई को इंटरफ़ेस पहुंच प्रदान करना चाहते हैं तो आपको गेटटर के लिए एक नया नाम आना होगा और इससे कोई फर्क नहीं पड़ता कि आपको http://golang.org/doc/effective_go.html#Getters
रिकॉर्ड के लिए, मुझे "json.Unmarshal (b, और d.jsonData)" का उपयोग करके Unmarshall करना पड़ा। क्या मैंने कुछ गलत किया, या उम्मीद है? – Derek
@ डेरेक, धन्यवाद, मैंने अपना जवाब अपडेट किया। जैसा कि मैंने कहा था कि कोड अवांछित था। मैं भी स्पष्ट रूप से अपने 'UnmarshalJSON()' विधि में एक वापसी बयान भूल गया। मैंने इसे भी ठीक किया। –
मैं शो के लिए थोड़ा देर हो चुकी हूं, लेकिन ... उपरोक्त कार्यों के दौरान, फील्ड 1 और फ़ील्ड 2 _are_ निर्यात किया गया। आप उस पैकेज के बाहर जेसनडाटा (पूंजी जे के साथ) के फील्ड 1 और फील्ड 2 को पढ़ और लिख सकते हैं। इसलिए, यह सिद्धांत में ठंडा है, लेकिन यह वास्तव में प्रकार और फ़ील्ड दोनों को निर्यात करने से अलग कुछ नहीं करता है। – davidjosepha