JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它易于阅读和编写,可与各种编程语言兼容,是网络数据传输中常用的格式。
在Go语言中,内置了对JSON的支持。通过encoding/json包,我们可以轻松地将Go语言中的结构体转换为JSON字符串,或将JSON字符串转换为Go语言中的数据结构。
// 将Go结构体转为JSON字符串 type Person struct { Name string `json:"name"` Age int `json:"age"` } p := Person{ Name: "John", Age: 28, } b, err := json.Marshal(p) if err != nil { panic(err) } // 将JSON字符串转为Go结构体 var newP Person err = json.Unmarshal(b, &newP) if err != nil { panic(err) }
在这段代码中,我们首先定义了一个Person结构体,然后创建了一个实例p。接下来,我们使用json.Marshal()将结构体转为JSON字符串,并通过error检查确保操作成功。
然后,我们使用json.Unmarshal()将JSON字符串转换为新的Person结构体。我们将要求函数将JSON字符串解码为一个指向Person结构体的指针newP。同样,我们使用error检查来确保操作成功。
通过Go语言的encoding/json包,我们可以方便地将Go结构体转换为JSON字符串,并将JSON字符串转换为对应的Go结构体。这使得在网络数据传输中使用JSON变得轻松有感,并让我们可以在Go语言的数据结构之间自由转换。