我有一個可以根據(jù) HTTP 請求標(biāo)頭輸出為 JSON 或 XML 的應(yīng)用程序。我可以通過將正確的標(biāo)簽添加到我正在使用的結(jié)構(gòu)中來獲得正確的輸出,但我無法弄清楚如何為 JSON 和 XML 指定標(biāo)簽。例如,這將序列化為正確的 XML: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"`}
1 回答

溫溫醬
TA貢獻(xiàn)1752條經(jīng)驗 獲得超4個贊
Go 標(biāo)簽是用空格分隔的。從手冊:
按照慣例,標(biāo)簽字符串是可選的空格分隔鍵:“值”對的串聯(lián)。每個鍵都是一個非空字符串,由除空格 (U+0020 ' ')、引號 (U+0022 '"') 和冒號 (U+003A ':') 以外的非控制字符組成。每個值都用引號引起來使用 U+0022 '"' 字符和 Go 字符串文字語法。
所以,你想寫的是:
type Foo struct {
Id int64 `xml:"id,attr" json:"id"`
Version int16 `xml:"version,attr" json:"version"`
}
- 1 回答
- 0 關(guān)注
- 286 瀏覽
添加回答
舉報
0/150
提交
取消