golang 實(shí)現(xiàn)json類(lèi)型不確定時(shí)的轉(zhuǎn)換
將json轉(zhuǎn)為結(jié)構(gòu)體時(shí),經(jīng)常會(huì)遇到無(wú)法確定某個(gè)字段類(lèi)型的情況。在Go中可以使用interface 任意類(lèi)型來(lái)解決。
// 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”}}
補(bǔ)充:gin bindJSON結(jié)構(gòu)體中有不確定類(lèi)型的字段
結(jié)構(gòu)體中有不確定類(lèi)型的字段,用interface{},BindJSON后根據(jù)輸入自動(dòng)存儲(chǔ)對(duì)應(yīng)類(lèi)型,比如
type student struct {
Name string `json:"name"`
Info interface{} `json:"info"`
}
比如,info的輸入
|
輸入 |
類(lèi)型 |
|
12 |
float64 |
|
“str” |
string |
|
{"str":"value"} |
map[string]interface {} |
|
true |
bool |
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
- Golang Cron 定時(shí)任務(wù)的實(shí)現(xiàn)示例
- golang定時(shí)器和超時(shí)的使用詳解
- Golang定時(shí)器的2種實(shí)現(xiàn)方法與區(qū)別
- golang 定時(shí)任務(wù)方面time.Sleep和time.Tick的優(yōu)劣對(duì)比分析
- Golang 定時(shí)器的終止與重置實(shí)現(xiàn)
- 詳解golang 定時(shí)任務(wù)time.Sleep和time.Tick實(shí)現(xiàn)結(jié)果比較
- 一文詳解Golang?定時(shí)任務(wù)庫(kù)?gron?設(shè)計(jì)和原理
相關(guān)文章
Golang中int類(lèi)型和字符串類(lèi)型相互轉(zhuǎn)換的實(shí)現(xiàn)方法
在日常開(kāi)發(fā)中,經(jīng)常需要將數(shù)字轉(zhuǎn)換為字符串或者將字符串轉(zhuǎn)換為數(shù)字,在 Golang 中,有一些很簡(jiǎn)便的方法可以實(shí)現(xiàn)這個(gè)功能,接下來(lái)就詳細(xì)講解一下如何實(shí)現(xiàn) int 類(lèi)型和字符串類(lèi)型之間的互相轉(zhuǎn)換,需要的朋友可以參考下2023-09-09
深入string理解Golang是怎樣實(shí)現(xiàn)的
這篇文章主要為大家介紹了深入string理解Golang是怎樣實(shí)現(xiàn)的原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
關(guān)于Golang標(biāo)準(zhǔn)庫(kù)flag的全面講解
這篇文章主要介紹了關(guān)于Golang標(biāo)準(zhǔn)庫(kù)flag的全面講解,這個(gè)庫(kù)的代碼量只有1000行左右,卻提供了非常完善的命令行參數(shù)解析功能,更多相關(guān)內(nèi)容需要的朋友可以參考一下2022-09-09
Go語(yǔ)言實(shí)現(xiàn)棧與隊(duì)列基本操作學(xué)家
go語(yǔ)言中,并沒(méi)有棧與隊(duì)列相關(guān)的數(shù)據(jù)結(jié)構(gòu),但是我們可以借助切片來(lái)實(shí)現(xiàn)棧與隊(duì)列的操作;接下來(lái)我們一起實(shí)現(xiàn)棧與隊(duì)列基本操作,感興趣的可以了解一下2022-11-11
一文帶你掌握Golang中的值類(lèi)型和引用類(lèi)型
在?Golang?中,數(shù)據(jù)類(lèi)型可以分為兩大類(lèi):值類(lèi)型(Value?Types)和引用類(lèi)型(Reference?Types),理解這兩種類(lèi)型的區(qū)別對(duì)于理解?Golang?中的數(shù)據(jù)傳遞和內(nèi)存管理是很重要的,下面就跟隨小編一起深入了解一下它們吧2024-01-01

