欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

golang json解析返回默認值

劉姿婷2年前12瀏覽0評論

在Golang中,json解析是非常常見的一個功能,我們經(jīng)常需要從json中解析數(shù)據(jù),然后使用它們進行其他的操作。但是,在實際開發(fā)中,json中可能存在一些我們沒有預(yù)料到的字段,這時候我們需要對這些字段設(shè)置一些默認值,以保證程序的正常運行。

在Golang中,我們可以使用“omitempty”來設(shè)置struct中一個字段的默認值。

type Person struct {
	Name string `json:"name"`
	Age  int    `json:"age,omitempty"`
}

上面的代碼中,Person結(jié)構(gòu)體中的Age字段設(shè)置為“omitempty”,這意味著如果在解析json時沒有找到Age字段,它將默認為0。

如果我們想要設(shè)置非零的默認值,我們可以使用omitempty的另一個技巧:

type Person struct {
	Name string `json:"name"`
	Age  int    `json:"age,omitempty"`
}
func NewPerson(name string) *Person {
	p := &Person{
Name: name,
	}
	p.SetDefault()
	return p
}
func (p *Person) SetDefault() {
	if p.Age == 0 {
p.Age = 18
	}
}

上面的代碼中,我們定義了一個SetDefault方法來設(shè)置Age字段的默認值。在NewPerson函數(shù)中,我們通過調(diào)用SetDefault方法來設(shè)置Person結(jié)構(gòu)體的默認值。

在實際開發(fā)中,我們只需要在解析json之前,在結(jié)構(gòu)體的默認字段中調(diào)用SetDefault方法,就可以保證我們的程序運行正常。