I have an application that can output as JSON or XML depending on the HTTP request headers. I can achieve the correct output for either by adding the correct tags to the structs I'm using, but I can't figure out how to specify the tags for both JSON and XML.
For example, this serializes to correct XML:
type Foo struct {
Id int64 `xml:"id,attr"`
Version int16 `xml:"version,attr"`
}
...and this generates correct JSON:
type Foo struct {
Id int64 `json:"id"`
Version int16 `json:"version"`
}
...but this doesn't work for either:
type Foo struct {
Id int64 `xml:"id,attr",json:"id"`
Version int16 `xml:"version,attr",json:"version"`
}
Go tags are space-separated. From the manual:
So, what you want to write is: