2013-11-10 11 views
22

मेरे पास एक ऐसा एप्लिकेशन है जो HTTP अनुरोध शीर्षकों के आधार पर जेएसओएन या एक्सएमएल के रूप में आउटपुट कर सकता है। मैं अपने द्वारा उपयोग किए जा रहे structs में सही टैग जोड़कर सही आउटपुट प्राप्त कर सकता हूं, लेकिन मैं यह नहीं समझ सकता कि JSON और XML दोनों के लिए टैग निर्दिष्ट कैसे करें।गोलांग संरचना के लिए एक्सएमएल और जेएसओएन टैग?

उदाहरण के लिए, इस XML को दूर करने के serializes:

type Foo struct { 
    Id   int64  `xml:"id,attr"` 
    Version  int16  `xml:"version,attr"` 
} 

... और यह सही JSON उत्पन्न करता है:

type Foo struct { 
    Id   int64  `json:"id"` 
    Version  int16  `json:"version"` 
} 

... लेकिन यह या तो के लिए काम नहीं करता:

type Foo struct { 
    Id   int64  `xml:"id,attr",json:"id"` 
    Version  int16  `xml:"version,attr",json:"version"` 
} 

उत्तर

40

गो टैग स्पेस से अलग हैं। the manual:

सम्मेलन के अनुसार, टैग स्ट्रिंग वैकल्पिक रूप से अंतरिक्ष से अलग कुंजी का एक संयोजन है: "मूल्य" जोड़े। प्रत्येक कुंजी एक गैर-खाली स्ट्रिंग है जिसमें अंतरिक्ष (यू +0020 ''), उद्धरण (यू +0022 '' '), और कोलन (यू +003 ए': ') के अलावा गैर-नियंत्रण वर्ण शामिल हैं। प्रत्येक मान उद्धृत किया गया है यू + 0022 '' 'वर्णों का प्रयोग करके और स्ट्रिंग अक्षर वाक्यविन्यास जाओ।

तो, क्या आप लिखना चाहते है:

type Foo struct { 
    Id   int64  `xml:"id,attr" json:"id"` 
    Version  int16  `xml:"version,attr" json:"version"` 
} 
+0

बिल्कुल सही है, धन्यवाद। – magneticMonster

+0

क्या हम अंतरिक्ष से अलग दो जेसन टैग का उपयोग कर सकते हैं? –

+0

@MayankPatel सं। टैग अनुक्रमिक रूप से पढ़े जाते हैं, और पहला मिलान टैग वापस कर दिया जाता है। –

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