在Go語言中,解析JSON數據是非常方便的,但是有些時候我們會遇到JSON數據中存在null的情況,那么Go語言又是如何處理這種情況的呢?
首先,讓我們看一下JSON數據中的null是什么樣子的:
{ "name": "John", "age": null }
在這個例子中,我們可以看到age的值是null。那么在Go語言中,我們通過解析JSON數據得到的age值是什么呢?
type Person struct { Name string `json:"name"` Age int `json:"age"` } jsonStr := `{"name":"John","age":null}` var p Person err := json.Unmarshal([]byte(jsonStr), &p) if err != nil { fmt.Println("error:", err) } fmt.Println(p.Name) // John fmt.Println(p.Age) // 0
在這段代碼中,我們通過Unmarshal函數將JSON數據解析成了結構體Person,并打印出了其中的name和age字段的值。可以看到,當JSON數據中的值為null時,對應的Go語言中的值為類型的默認值,比如在這個例子中,age字段的類型是int,那么它的默認值為0。因此,在輸出p.Age的時候,得到的是0。
需要注意的是,當JSON數據中某個字段的值為null時,對應的Go語言結構體中的該字段必須是可以為nil的類型,比如指針類型、interface類型等。
總之,在Go語言中解析JSON數據時,需要注意JSON數據中存在null的情況,并根據具體的場景來合理處理。
上一篇vue length
下一篇vue legend