色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

go type json

洪振霞2年前9瀏覽0評論

Go語言有一個非常常用的編碼和解碼數據的標準庫叫做encoding/json, 它可以讓我們很方便地在Go語言和JSON數據之間進行轉換。

在使用encoding/json庫進行編碼之前,我們需要先定義數據結構,這樣就可以將Go語言數據轉換為JSON格式數據,詳見下面的例子。

type Person struct {
Name    string   `json:"name"`
Age     int      `json:"age"`
Email   string   `json:"email,omitempty"`
Address *Address `json:"address,omitempty"`
}
type Address struct {
Street string `json:"street,omitempty"`
City   string `json:"city,omitempty"`
}

在上述代碼中, struct中的字段標簽 "json:..." 代表json包的解釋器如何將結構體寫入到或解釋自JSON數據。假如我們現在有一個Person實例。

p := Person{Name: "Tom", Age: 18, Email: "tom@example.com", Address: &Address{Street: "123 Main St", City: "Beijing"}}

下面,我們可以使用encoding/json將數據編碼成JSON數據。

data, err := json.Marshal(p)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(data))

在上面的代碼中,我們使用json.Marshal函數將Person實例編碼成字節數組,然后通過string()函數將字節數組轉換成字符串并輸出。

當我們需要將JSON數據解碼成Go語言數據時,可以使用json.Unmarshal函數。例如:

jsonStr := `{"name":"Tom","age":18,"email":"tom@example.com","address":{"street":"123 Main St","city":"Beijing"}}`
var p Person
if err := json.Unmarshal([]byte(jsonStr), &p); err != nil {
log.Fatal(err)
}
fmt.Printf("%+v", p)

在上面的代碼中,我們將一個JSON字符串轉換成了Person結構體實例。