2009-07-09 9 views
14

मैं संदेश क्रमबद्धता के लिए Protocol Buffers का उपयोग करने का प्रयास कर रहा हूं।प्रोटोकॉल बफर का उपयोग करके आप मानचित्र <स्ट्रिंग, ऑब्जेक्ट> को एन्कोड कैसे करेंगे?

मेरे संदेश प्रारूप में मानचित्र < स्ट्रिंग, ऑब्जेक्ट> प्रविष्टियां होनी चाहिए ... लेकिन मैं .proto परिभाषा कैसे लिखूं?

जहां तक ​​मुझे पता है, प्रोटोकॉल बफर के पास नक्शा प्रकार का निर्माण नहीं है। मैं दोहराने वाले क्षेत्रों का उपयोग कर उस मॉडल को मॉडल कर सकता हूं। लेकिन मेरे पास बड़ी समस्या यह है कि आपको अपने सभी प्रकारों को परिभाषित करने की आवश्यकता है। मैं चाहता हूं कि मेरा संदेश लचीला हो, इसलिए मैं प्रकार निर्दिष्ट नहीं कर सकता।

कोई विचार?

+0

इसके लिए क्या लायक है: अब यह प्रतीत होता है कि 'प्रोटो 3' में 'मानचित्र <,>' वाक्यविन्यास है: https://developers.google.com/protocol-buffers/docs/proto3#maps –

उत्तर

10

मैं एक कुंजी और मूल्य के साथ एक टुपल मॉडल करता हूं (शायद एक मान फ़ील्ड प्रति प्रकार जो मान हो सकता है)। फिर बस उस टुपल प्रकार की एक दोहराई गई सूची है। आपको नक्शा स्वयं कोड में बनाना होगा।

जब आप कहते हैं कि आप प्रकार निर्दिष्ट नहीं कर सकते हैं - आप किस प्रकार के प्रकार के बारे में बात कर रहे हैं? यदि आपके पास ट्यूपल में प्रत्येक प्रकार का एक वैकल्पिक क्षेत्र है, तो वह सभी प्राइमेटिव्स का सामना करेगा - और नक्शा संदेश उन्हें बाइट स्ट्रिंग में क्रमबद्ध करके कर सकता है।

ऐसा लगता है कि "अनियंत्रण" के स्तर की तरह आप पीबी के लिए एक अच्छा फिट नहीं हो सकते हैं।

+1

उचित लगता है ... लेकिन मुझे लगता है कि आप सही हैं: पीबी मेरी समस्या के लिए एक अच्छा फिट नहीं दिखता है – arturh

+2

@artuh - अंततः आपने अपनी समस्या के लिए क्या उपयोग किया? – ekeren

+0

तो ... कोई विचार? –

संबंधित मुद्दे