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

go操作json庫

張吉惟1年前6瀏覽0評論

Go語言支持操作各種數據結構,包括JSON。JSON是一種輕量級的數據交換格式,它易于閱讀和編寫,也易于機器解析和生成。在Go中,我們可以使用標準庫中的encoding/json包來對JSON數據進行操作。

在Go中,我們可以將JSON數據解析成結構體,也可以將結構體序列化成JSON數據。對于解析JSON數據,我們可以使用json.Unmarshal函數。該函數接收兩個參數,第一個是要解析的JSON數據,第二個是一個指向目標結構體的指針。以下是一個簡單的示例:

type Person struct {
Name string `json:"name"`
Age  int    `json:"age"`
}
func main() {
jsonStr := `{"name":"Alice","age":20}`
var p Person
err := json.Unmarshal([]byte(jsonStr), &p)
if err != nil {
fmt.Println("parse error:", err)
return
}
fmt.Println(p.Name, p.Age)
}

在上面的示例中,我們定義了一個Person結構體,并使用json.Unmarshal函數將JSON數據解析成該結構體。注意,我們在結構體中使用了tag來指定JSON字段名,這樣就可以讓解析器知道JSON中的哪個字段對應哪個結構體字段。

對于序列化JSON數據,我們可以使用json.Marshal函數。該函數接收一個結構體作為參數,并將其序列化成JSON數據。以下是一個示例:

type Person struct {
Name string `json:"name"`
Age  int    `json:"age"`
}
func main() {
p := Person{Name: "Alice", Age: 20}
data, err := json.Marshal(p)
if err != nil {
fmt.Println("marshaling error:", err)
return
}
fmt.Println(string(data))
}

在上面的示例中,我們定義了一個Person結構體,并使用json.Marshal函數將其序列化成JSON數據。注意,我們在結構體中使用了tag來指定JSON字段名,這樣就可以讓json.Marshal函數生成正確的JSON數據。