go - What's the proper way to convert a json.RawMessage to a struct? -
मेरे पास यह अब मैं ElasticSearch से कुछ मैंने सोचा भी यह कैसे करना है ... लेकिन यह अजीब लगता है मैं पहली बार यह ठीक काम करता है लेकिन ऐसा लगता है जैसे मैं अतिरिक्त हॉप कर रहा हूं क्या मुझे कुछ याद आ रही है या यह कि जैसा कि कहा गया है, अंतर्निहित प्रकार हालांकि, आपकी समस्या यह है कि आपके पास है एक सूचक ( काम के उदाहरण: आउटपुट: <पूर्व> खेल का मैदान: struct
प्रकार SyncInfo struct {लक्ष्य है स्ट्रिंग}
json डेटा पूछता हूं।
स्रोत प्रकार का है
json.RawMessage । मैं चाहता हूं कि मेरे
स्रोत को मेरे
SyncInfo पर मैप करना है, जिसके लिए मैंने चर
mySyncInfo बनाया है।
मार्शलजसन () को
[] बाइट प्राप्त करने के लिए कॉल करता हूं और फिर उसे
json.Unmarshal () पर फ़ीड करता है < ] बाइट और मेरे स्ट्रक्चर के लिए एक सूचक।
json.RawMessage से
struct ?
var mySyncInfo SyncInfo jsonStr से प्राप्त करने का इच्छित तरीका है, _: = Out.Hits.Hits [0]। स्रोत। मिर्सलजसन () json.Unmarshal (jsonStr, और mySyncInfo) fmt.Print (mySyncInfo.Target)
json.RawMessage है
[] बाइट , ताकि आप <
json.Unmarshal के लिए डेटा पैरामीटर के रूप में
json.RawMessage का उपयोग कर सकते हैं
* json.RawMessage ) और एक मान नहीं है। आपको केवल यह करने के लिए dereference है:
err: = json.Unmarshal (* out.Hits.Hits [0]। स्रोत, & mySyncInfo)
पैकेज मुख्य आयात ("एन्कोडिंग / जेएसन" "एफएमटी") टाइप करें सिंकइनफ़ॉर्फ़ संरचना {लक्ष्य स्ट्रिंग} func main () {डेटा : = [] बाइट (`{" लक्ष्य ":" लोकलहोस्ट "}`) स्रोत: = (* json.RawMessage) (और डेटा) var mySyncInfo SyncInfo // नोटिफ़ाइंग तारांकन * त्रुटि: = json.Unmarshal (* स्रोत, & amp; mySyncInfo) अगर गलती! = शून्य <दहशत (गलती)} fmt.printf ("% + v \ n", mySyncInfo)} code>
{लक्ष्य: स्थानीयहोस्ट}
Comments
Post a Comment