在Go语言开发中,使用JSON格式进行数据传输和存储已经成为了一个非常流行的方式。为了方便地处理JSON数据,在Go语言中提供了一个JSON包,使用该包可以方便地进行JSON数据的解析和序列化。
JSON包提供的主要函数有:
func Marshal(v interface{}) ([]byte, error) func Unmarshal(data []byte, v interface{}) error
其中,Marshal函数将一个Go语言数据结构序列化为JSON字符串,而Unmarshal函数将JSON字符串反序列化为Go语言数据结构。
下面是基本的使用示例:
package main import ( "encoding/json" "fmt" ) type User struct { Name string Age int Occupation string } func main() { user := User{ "张三", 20, "学生", } 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) }
在上述示例中,我们定义了一个User结构体,然后通过Marshal函数将其序列化为JSON字符串,输出结果为:
{"Name":"张三","Age":20,"Occupation":"学生"}
接着,我们使用Unmarshal函数将JSON字符串反序列化为一个新的User结构体并输出:
{张三 20 学生}
除了这些基本操作,JSON包还提供了一些高级用法,例如可以自定义JSON key名称、使用标签控制JSON序列化/反序列化行为等。