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-03
Golang logrus 日志包及日志切割的實現(xiàn)
這篇文章主要介紹了Golang logrus 日志包及日志切割的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-02-02

