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

go json null

錢多多2年前7瀏覽0評論

Go語言中的JSON包提供一個Null類型,表示JSON數據中的null值。通常情況下,Null類型會在解析JSON數據時自動識別并轉換為nil值。

package main
import (
	"encoding/json"
	"fmt"
)
type Order struct {
	ID        int       `json:"id"`
	Amount    float64   `json:"amount"`
	CreatedAt time.Time `json:"createdAt"`
}
func main() {
	jsonString := `{
"id": 1,
"amount": null,
"createdAt": "2022-01-01T00:00:00Z"
}`
var order Order
json.Unmarshal([]byte(jsonString), &order)
fmt.Println(order.Amount == 0.0)
}

在上面的例子中,JSON數據中的amount字段的值為null,在解析后將其轉換為Go語言的float64類型的默認值0.0。因此,fmt.Println的輸出為true。

在編碼JSON數據時,Null類型也會被自動轉換為null值。

package main
import (
	"encoding/json"
	"fmt"
)
type Person struct {
	Name  string `json:"name"`
	Age   int    `json:"age"`
	Job   string `json:"job,omitempty"`
	Phone string `json:"phone,omitempty"`
}
func main() {
	person1 := Person{
Name: "Alice",
Age:  20,
Job:  null,
	}
	jsonData, _ := json.Marshal(person1)
	fmt.Println(string(jsonData))
}

在上面的例子中,Person結構體中的Job字段的值為Null類型。在編碼JSON數據時,Null類型被自動轉換為null值,并根據omitempty選項決定是否序列化該字段。因此,最終生成的JSON數據中不包含Job字段。