在 Golang 中,将 JSON 字符串转换为对象可以使用内置的 "encoding/json" 包。具体步骤如下:
例如,假设有如下 JSON 字符串:
"name" : "Tom" , "age" : 20 , "gender" : "male"则可以定义如下的结构体:
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
Gender string `json:"gender"`
使用 json.Unmarshal()
函数将 JSON 字符串解析为结构体对象。json.Unmarshal()
接收两个参数:第一个参数是要解析的 JSON 字符串,第二个参数是解析结果要存放的目标变量的地址。
例如,假设有如下 JSON 字符串:
jsonStr := `{
"name": "Tom",
"age": 20,
"gender": "male"
则可以使用以下代码将其转换为 Person
结构体对象:
var p Person
if err := json.Unmarshal([]byte(jsonStr), &p); err != nil {
fmt.Println(err)
return
在上述代码中,使用 []byte()
函数将 JSON 字符串转换为字节数组,然后将字节数组和 p
变量的地址传递给 json.Unmarshal()
函数。
可以通过访问结构体对象的属性来获取 JSON 数据中的值。
例如,可以使用以下代码获取 Person
结构体对象的 Name
属性:
fmt.Println(p.Name)
完整的示例代码如下:
package main
import (
"encoding/json"
"fmt"
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
Gender string `json:"gender"`
func main() {
jsonStr := `{
"name": "Tom",
"age": 20,
"gender": "male"
var p Person
if err := json.Unmarshal([]byte(jsonStr), &p); err != nil {
fmt.Println(err)
return
fmt.Println(p.Name)
以上就是使用 Golang 将 JSON 字符串转换为对象的详细步骤。