序列化
以下是一个使用 Go 语言进行 JSON 序列化的示例代码:
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
Email string `json:"email,omitempty"`
}
func main() {
person := Person{
Name: "John Doe",
Age: 30,
Email: "johndoe@example.com",
}
jsonData, err := json.Marshal(person)
if err != nil {
fmt.Println("JSON marshal error:", err)
return
}
fmt.Println(string(jsonData))
}
Personpersonjsonjson.Marshalpersonjson.Marshalperson运行该示例代码将输出如下结果:
{"name":"John Doe","age":30,"email":"johndoe@example.com"}jsonomitempty反序列化
以下是一个使用 Go 语言进行 JSON 反序列化的示例代码:
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
Email string `json:"email,omitempty"`
}
func main() {
jsonStr := `{"name":"John Doe","age":30,"email":"johndoe@example.com"}`
var person Person
err := json.Unmarshal([]byte(jsonStr), &person)
if err != nil {
fmt.Println("JSON unmarshal error:", err)
return
}
fmt.Println("Name:", person.Name)
fmt.Println("Age:", person.Age)
fmt.Println("Email:", person.Email)
}
PersonjsonjsonStrjson.UnmarshalPersonjson.UnmarshalPerson运行该示例代码将输出如下结果:
Name: John Doe
Age: 30
Email: johndoe@example.comjsonomitempty