"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > कैसे JSON Websocket संदेशों को GO में यूनियन प्रकार के रूप में deserialize करने के लिए?

कैसे JSON Websocket संदेशों को GO में यूनियन प्रकार के रूप में deserialize करने के लिए?

2025-03-12 को पोस्ट किया गया
ब्राउज़ करें:738

] हालांकि, जब सीरियलाइज़ेशन और डिसेरिअलाइज़ेशन के लिए JSON का उपयोग करते हुए, अलग -अलग प्रकारों के आने वाले संदेशों को संभालने से एक चुनौती प्रस्तुत होती है।

How to Deserialize JSON Websocket Messages as Union Types in Go? 
निम्नलिखित उदाहरण पर विचार करें जहां आपके पास संदेश प्रकार "फू" और "बार" के लिए संरचनाएं हैं:

टाइप फू स्ट्रक्चर { एक स्ट्रिंग `json:" a "` B स्ट्रिंग `JSON:" B "` } टाइप बार स्ट्रक्चर { C स्ट्रिंग `JSON:" C "` D स्ट्रिंग `JSON:" D "` … हालाँकि, आपको विभिन्न प्रकार के संदेशों को संभालने के लिए अलग -अलग con.readjson (foo) और con.readjson (बार) कॉल का उपयोग करने की आवश्यकता होगी, जो अक्षम और बोझिल है। नियंत्रण स्ट्रिंग `JSON:" नियंत्रण "` X JSON.RAWMESSAGE } नियंत्रण क्षेत्र पेलोड के प्रकार को इंगित करता है, और x कच्चे JSON डेटा रखता है। इस दृष्टिकोण का उपयोग करके आने वाले संदेशों को deserialize करने के लिए:

var m संदेश गलत: = C.ReadJson (& m) अगर गलत! = nil { // संभाल त्रुटि } स्विच M.control { केस "फू": वर फू फू यदि गलत: = json.unmarshal ([] बाइट (m.x), और foo); irr! = nil { // संभाल त्रुटि } // फू के साथ कुछ करो मामला "बार": // बार हैंडलिंग बार के लिए एक ही पैटर्न का पालन करें … स्विच स्टेटमेंट वास्तविक संदेश प्रकार को निर्धारित करने के लिए नियंत्रण फ़ील्ड की जांच करता है और तदनुसार deserialize करता है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3