golang 實現(xiàn)json類型不確定時的轉換
更新時間:2021年01月25日 17:04:13 作者:翔云123456
這篇文章主要介紹了golang 實現(xiàn)json類型不確定時的轉換操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
將json轉為結構體時,經(jīng)常會遇到無法確定某個字段類型的情況。在Go中可以使用interface 任意類型來解決。
// convert json to struct // type uncertain package main import ( "fmt" "encoding/json" ) type Host struct { Id interface{} IdcId interface{} } func main() { b := []byte(`{"ID": 11, "IDCid": "1001"}`) m := Host{} err := json.Unmarshal(b, &m) if err != nil { fmt.Println("Umarshal failed:", err) return } fmt.Printf("m:%#v\n", m) }
output:
m:main.Host{Id:11, IdcId:”1001”}}
補充:gin bindJSON結構體中有不確定類型的字段
結構體中有不確定類型的字段,用interface{},BindJSON后根據(jù)輸入自動存儲對應類型,比如
type student struct { Name string `json:"name"` Info interface{} `json:"info"` }
比如,info的輸入
輸入 |
類型 |
12 |
float64 |
“str” |
string |
{"str":"value"} |
map[string]interface {} |
true |
bool |
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關文章
Golang限流器time/rate設計與實現(xiàn)詳解
在?Golang?庫中官方給我們提供了限流器的實現(xiàn)golang.org/x/time/rate,它是基于令牌桶算法(Token?Bucket)設計實現(xiàn)的,下面我們就來看看他的具體使用吧2024-03-03Golang logrus 日志包及日志切割的實現(xiàn)
這篇文章主要介紹了Golang logrus 日志包及日志切割的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-02-02