在 Go 语言中,可以使用 encoding/json
包来进行 JSON 的编解码操作。下面是一个简单的示例:
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
// 编码
person := Person{"Alice", 30}
data, err := json.Marshal(person)
if err != nil {
fmt.Println("JSON encoding error:", err)
return
}
fmt.Println(string(data))
// 解码
jsonStr := `{"name":"Bob","age":25}`
var newPerson Person
err = json.Unmarshal([]byte(jsonStr), &newPerson)
if err != nil {
fmt.Println("JSON decoding error:", err)
return
}
fmt.Printf("%+v\n", newPerson)
}
运行以上代码,可以看到输出结果:
{"name":"Alice","age":30}
{Name:Alice Age:30}
这样就实现了 JSON 的编解码操作。在上面的示例中,json.Marshal
函数用于将结构体编码为 JSON 字符串,json.Unmarshal
函数用于将 JSON 字符串解码为结构体。需要注意的是,结构体中的字段必须是导出的(即首字母大写),否则在编解码时可能会出现问题。