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

go json 包使用

老白2年前8瀏覽0評(píng)論

在Go語(yǔ)言開(kāi)發(fā)中,使用JSON格式進(jìn)行數(shù)據(jù)傳輸和存儲(chǔ)已經(jīng)成為了一個(gè)非常流行的方式。為了方便地處理JSON數(shù)據(jù),在Go語(yǔ)言中提供了一個(gè)JSON包,使用該包可以方便地進(jìn)行JSON數(shù)據(jù)的解析和序列化。

JSON包提供的主要函數(shù)有:

func Marshal(v interface{}) ([]byte, error)
func Unmarshal(data []byte, v interface{}) error

其中,Marshal函數(shù)將一個(gè)Go語(yǔ)言數(shù)據(jù)結(jié)構(gòu)序列化為JSON字符串,而Unmarshal函數(shù)將JSON字符串反序列化為Go語(yǔ)言數(shù)據(jù)結(jié)構(gòu)。

下面是基本的使用示例:

package main
import (
"encoding/json"
"fmt"
)
type User struct {
Name     string
Age      int
Occupation string
}
func main() {
user := User{
"張三",
20,
"學(xué)生",
}
result, err := json.Marshal(user)
if err != nil {
fmt.Println("序列化失敗:", err)
}
fmt.Println(string(result))
var user2 User
err = json.Unmarshal(result, &user2)
if err != nil {
fmt.Println("反序列化失敗:", err)
}
fmt.Println(user2)
}

在上述示例中,我們定義了一個(gè)User結(jié)構(gòu)體,然后通過(guò)Marshal函數(shù)將其序列化為JSON字符串,輸出結(jié)果為:

{"Name":"張三","Age":20,"Occupation":"學(xué)生"}

接著,我們使用Unmarshal函數(shù)將JSON字符串反序列化為一個(gè)新的User結(jié)構(gòu)體并輸出:

{張三 20 學(xué)生}

除了這些基本操作,JSON包還提供了一些高級(jí)用法,例如可以自定義JSON key名稱、使用標(biāo)簽控制JSON序列化/反序列化行為等。