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

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

golang 類型轉換。結構體接口

golang 類型轉換。結構體接口

Go
智慧大石 2021-12-20 09:43:10
我不習慣golang。當我請求時,我得到了以下日志。我想解析日志并將其存儲為struct類型。有人告訴我該怎么做嗎?提前致謝。例如 :type ResultStruct struct{    id int    guid string    name string}for k, v := range data {    fmt.Print(v.id) fmt.Print(v.guid) fmt.Print(v.name)}[日志]數據:[地圖[id:90001 guid:a name:test1] map[guid:b name:test2 id:90002] map[name:test3 id:90003 guid:c]][來源]response := httpClient.Do(request)var data interface{}rawdata, err := ioutil.ReadAll(response.body)json.Unmarshal(rawdata, &data)fmt.Println("data :", data)
查看完整描述

2 回答

?
慕婉清6462132

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

這是 Go 新程序員的常見錯誤。


由于語言設計,json.Unmarshal只能編組到導出字段中。


只需將每個字段名稱的第一個字母大寫即可導出它們。您可以選擇添加字段標簽來告訴 json.Marshal 使用什么鍵名。僅當您要使用json.Marshal.


type ResultStruct struct{

    Id   int    `json:"id"`

    Guid string `json:"guid"`

    Name string `json:"name"`

}

報價encoding/json包:


要將 JSON 解組為結構,Unmarshal 將傳入的對象鍵與 Marshal 使用的鍵(結構字段名稱或其標簽)進行匹配,更喜歡精確匹配,但也接受不區分大小寫的匹配。Unmarshal 只會設置結構的導出字段。


查看完整回答
反對 回復 2021-12-20
?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

你得到一個數組,使用encoding/json包解組它。


type ResultStruct struct {

    id int      `json:"id"`

    guid string `json:"guid"`

    name string `json:"name"`

}

type Result struct {

    Data []ResultStruct `json:"data"`

}


response := httpClient.Do(request)

var data Result

decErr := json.NewDecoder(response.body).Decode(&data)

fmt.Println(decErr, data)

這應該將數據解組為數組。


查看完整回答
反對 回復 2021-12-20
  • 2 回答
  • 0 關注
  • 138 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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