我有一個(gè)可以根據(jù) HTTP 請(qǐng)求標(biāo)頭輸出為 JSON 或 XML 的應(yīng)用程序。我可以通過將正確的標(biāo)簽添加到我正在使用的結(jié)構(gòu)中來(lái)獲得正確的輸出,但我無(wú)法弄清楚如何為 JSON 和 XML 指定標(biāo)簽。例如,這將序列化為正確的 XML:type Foo struct { Id int64 `xml:"id,attr"` Version int16 `xml:"version,attr"`}...這會(huì)生成正確的 JSON:type Foo struct { Id int64 `json:"id"` Version int16 `json:"version"`}...但這對(duì)兩者都不起作用:type Foo struct { Id int64 `xml:"id,attr",json:"id"` Version int16 `xml:"version,attr",json:"version"`}
1 回答

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