golang 實現(xiàn)json類型不確定時的轉(zhuǎn)換
將json轉(zhuǎn)為結(jié)構(gòu)體時,經(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結(jié)構(gòu)體中有不確定類型的字段
結(jié)構(gòu)體中有不確定類型的字段,用interface{},BindJSON后根據(jù)輸入自動存儲對應(yīng)類型,比如
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)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
Golang中int類型和字符串類型相互轉(zhuǎn)換的實現(xiàn)方法
在日常開發(fā)中,經(jīng)常需要將數(shù)字轉(zhuǎn)換為字符串或者將字符串轉(zhuǎn)換為數(shù)字,在 Golang 中,有一些很簡便的方法可以實現(xiàn)這個功能,接下來就詳細講解一下如何實現(xiàn) int 類型和字符串類型之間的互相轉(zhuǎn)換,需要的朋友可以參考下2023-09-09
關(guān)于Golang標(biāo)準(zhǔn)庫flag的全面講解
這篇文章主要介紹了關(guān)于Golang標(biāo)準(zhǔn)庫flag的全面講解,這個庫的代碼量只有1000行左右,卻提供了非常完善的命令行參數(shù)解析功能,更多相關(guān)內(nèi)容需要的朋友可以參考一下2022-09-09

