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

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

當并非所有 Struct 值都可以轉換為 interface{} 時重命名 JSON 標簽

當并非所有 Struct 值都可以轉換為 interface{} 時重命名 JSON 標簽

Go
慕田峪4524236 2023-06-12 15:30:58
假設我有以下內容struct,并且我想根據代碼中的一些字符串變量重命名 X 和 Y。type RenameStruct struct {     X map[string]interface{}     Y []map[string]interface{} }在編碼為 JSON 時重命名它們的最佳方法是什么?我在 StackOverflow 中找到的那些似乎不適用于struct一個字段是一個interface{}ant 而另一個是[]interface{}.編輯:我使用 Dave 的回答以這種方式創建“RenameStruct”列表:play.golang.org/p/hKZQvhJV2iL
查看完整描述

1 回答

?
臨摹微笑

TA貢獻1982條經驗 獲得超2個贊

您需要使用自定義 JSON 編組器,然后通過某種方式傳入您想要的名稱。我能想到的唯一簡單方法是:


type RenameStruct struct {

    X map[string]interface{}

    Y []map[string]interface{}

    xName string

    yName string

}


func (r RenameStruct) MarshalJSON() ([]byte, error) {

    data := make(map[string]interface{})

    data[r.xName] = r.X

    data[r.yName] = r.Y

    return json.Marshal(data)

}

https://play.golang.org/p/cpjgJ5tpcK3


查看完整回答
反對 回復 2023-06-12
  • 1 回答
  • 0 關注
  • 212 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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