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

go json 包

林玟書2年前9瀏覽0評論

Go語言中的json包提供了將數據在JSON(JavaScript Object Notation)和Go結構體(struct)之間進行編碼和解碼的功能。JSON是一種輕量級的數據交換格式,可以在多種編程語言之間進行數據傳遞。

package main
import (
"encoding/json"
"fmt"
)
type User struct {
Name  string `json:"name"`
Age   int    `json:"age"`
Email string `json:"email"`
}
func main() {
user := User{
Name:  "Alice",
Age:   30,
Email: "alice@example.com",
}
// 將結構體編碼為JSON格式的字符串
jsonBytes, err := json.Marshal(user)
if err != nil {
fmt.Println(err)
return
}
// 將JSON格式的字符串解碼為結構體
var user2 User
if err := json.Unmarshal(jsonBytes, &user2); err != nil {
fmt.Println(err)
return
}
fmt.Println(string(jsonBytes)) // {"name":"Alice","age":30,"email":"alice@example.com"}
fmt.Println(user2.Name)        // Alice
}

在上面的例子中,我們定義了一個名為User的結構體,并在結構體中添加了三個字段:Name、Age和Email。我們給每個字段都添加了一個名為json的tag,用于確定在編碼和解碼JSON字符串時使用的字段名稱。

接著,我們創建了一個名為user的結構體實例,并通過調用json.Marshal()函數將其編碼為JSON格式的字符串。Marshal()函數返回一個字節數組以及一個錯誤信息。如果有錯誤發生,則我們可以在日志中打印出來。

然后,我們定義了另一個名為user2的User結構體實例,并通過調用json.Unmarshal()函數將JSON字符串解碼為該結構體。Unmarshal()函數接收兩個參數:要解碼的JSON字節數組和一個指向要解碼到的結構體的指針。與Marshal()函數一樣,Unmarshal()函數也返回一個錯誤信息,我們可以在日志中打印出來。

最后,我們打印了編碼后的JSON字符串和解碼后的User結構體的Name字段值。