亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

是否可以像代碼中那樣對單個標簽使用多個標簽值

是否可以像代碼中那樣對單個標簽使用多個標簽值

Go
至尊寶的傳說 2023-07-17 16:36:10
type XMLStruct struct {    Name    string  `json:"name" json:"FirstName"`    Date    string  `xml:"Date" xml:"pudDate"`}
查看完整描述

4 回答

?
RISEBY

TA貢獻1856條經驗 獲得超5個贊

我要說不,不是這樣。


你可以這樣做,


type XMLStruct struct {

    Name    string  `json:"name" xml:"name"`

    Date    string  `json:"Date" xml:"Date"`

}

或這個,


type XMLStruct struct {

    Name        string  `json:"name, omitempty" xml:"name, omitempty"`

    Date        string  `json:"Date, omitempty" xml:"Date, omitempty"`

    FirstName   string  `json:"FirstName, omitempty" xml:"FirstName, omitempty"`

}

但我不相信你可以將多個 json 名稱映射到一個結構字段,我認為這樣做的原因是如果它們都存在于 json 結構中,你會保留哪一個并丟棄等等。


查看完整回答
反對 回復 2023-07-17
?
泛舟湖上清波郎朗

TA貢獻1818條經驗 獲得超3個贊

對此沒有明確的答案。在語言規范級別,結構標簽是任意文本,沒有固有含義。這意味著,從語言的角度來看,json:"name" json:"FirstName"它是一個有效的標簽,就像任何其他任意文本一樣。

重要的是代碼如何解釋標簽。既然您正在談論標簽json,您可能會關心encoding/json標準庫中的包。這里和這里的文檔描述了這個包如何解釋標簽。像這樣的重復標簽充其量是不明確的,因此可以說它不受支持。盡管使用這樣的標簽會有所作為。它的作用可能符合也可能不符合您的期望(取決于您的期望)。

但可能還有其他包可以解釋json標簽——可能包括您自己編寫的包。他們可以使用任何他們想要的規則,包括允許或禁止多個具有相同名稱的標簽段。


查看完整回答
反對 回復 2023-07-17
?
開心每一天1111

TA貢獻1836條經驗 獲得超13個贊

go-struct 的字段標記實際上可以具有任何 UTF-8 序列。這是合法的代碼:

type XMLStruct struct {
    Name string `g1bb3ri$h...T@g`
}

所以標簽是可以解釋的。標準庫中的包json需要特定格式的標簽 - 它將單個結構字段映射到單個 JSON 屬性。

如果您想支持單個字段的多個屬性 - 人們可以編寫自己的 Marshal/Unmarshal 并按照這種新的標記格式進行操作。但正如其他一些評論/答案所暗示的那樣,存在處理沖突的困境。


查看完整回答
反對 回復 2023-07-17
?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

如果您在 key:"value" 對中有相同的鍵,則結構標記查找將僅使用您指定的第一個值。


所以,你的結構看起來像


type XMLStruct struct {

? ? Name? ? string? `json:"name"`

? ? Date? ? string? `xml:"Date"`

}

查看完整回答
反對 回復 2023-07-17
  • 4 回答
  • 0 關注
  • 162 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號