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

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

golang 我如何從 []interface {} 類型中獲取價值

golang 我如何從 []interface {} 類型中獲取價值

Go
白衣非少年 2023-03-15 15:16:09
我有 var (name result["error_type"]) 類型[]interface {}和價值[map[reason:map[phone:empty] send_at:1.636697291e+09 status:error]]我如何從 type []interface {} 中獲取值示例 result["error_type"]["128"]["reason"]["phone"]我得到的這種類型var result map[string]interface{}json.NewDecoder(r.Body).Decode(&result)r.Body 有 Json{  "offer_name":"EbcBankruptcy",  "offer_id":"288",  "partner_name":"середов",  "partner_id":"1",  "type_system":"gb",  "status":"success",  "date_request":"2021-01-02 11:03",  "bank_name":"alfa",  "bank_id":"1",  "type_product":"1",  "error_type":{"128": [{"reason": {"phone": "Отсутствует обязательное поле номер телефона"}, "status": "error", "send_at": 1636697291}], "200": [{"reason": {"phone": "Отсутствует обязательное поле номер телефона"}, "status": "error", "send_at": 1636697281}]},  "request_id":"1"}我也不t create structure error_type for json.NewDecoder parse because i don知道 json (128, 200, 300) 中的 error_type 中會有什么樣的 id我嘗試獲得價值test["reason"]["phone"]但是,它不起作用也投向map[string]interface{}它不起作用
查看完整描述

1 回答

?
幕布斯6054654

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

就問題的理解而言,我的理解是您可以按以下方式格式化數據。


type Payload struct {

? ? OfferName? ?string? ? ? ? ? ? ? ? ?`json:"offer_name"`

? ? OfferID? ? ?string? ? ? ? ? ? ? ? ?`json:"offer_id"`

? ? PartnerName string? ? ? ? ? ? ? ? ?`json:"partner_name"`

? ? PartnerID? ?string? ? ? ? ? ? ? ? ?`json:"partner_id"`

? ? TypeSystem? string? ? ? ? ? ? ? ? ?`json:"type_system"`

? ? Status? ? ? string? ? ? ? ? ? ? ? ?`json:"status"`

? ? DateRequest string? ? ? ? ? ? ? ? ?`json:"date_request"`

? ? BankName? ? string? ? ? ? ? ? ? ? ?`json:"bank_name"`

? ? BankID? ? ? string? ? ? ? ? ? ? ? ?`json:"bank_id"`

? ? TypeProduct string? ? ? ? ? ? ? ? ?`json:"type_product"`


? ? // you can use the type map of array of error data here?

? ? ErrorType? ?map[string][]ErrorData `json:"error_type"`


? ? RequestID? ?string? ? ? ? ? ? ? ? ?`json:"request_id"`

}



type ErrorData struct {

? ? Reason Reason `json:"reason"`

? ? Status string `json:"status"`

? ? SendAt int? ? `json:"send_at"`

}


type Reason struct {

? ? Phone string `json:"phone"`

}

使用以下內容,您可以將數據解組為


fmt.Printf("%+v", p.ErrorType["128"][0].Reason)

如果您不知道地圖的鍵,您仍然可以遍歷地圖值并獲取數據。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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