在Golang中,可以使用内置的encoding/json
包来进行JSON字符串与结构体的转换。下面是一个示例代码:
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
Email string `json:"email"`
}
func main() {
jsonStr := `{"name":"Alice","age":25,"email":"alice@example.com"}`
var person Person
err := json.Unmarshal([]byte(jsonStr), &person)
if err != nil {
fmt.Println("解析JSON失败:", err)
return
}
fmt.Printf("Name: %s\n", person.Name)
fmt.Printf("Age: %d\n", person.Age)
fmt.Printf("Email: %s\n", person.Email)
person.Age = 26
personJson, err := json.Marshal(person)
if err != nil {
fmt.Println("生成JSON失败:", err)
return
}
fmt.Println(string(personJson))
}
这个示例中,我们定义了一个Person
结构体,并使用json
标签指定了对应的JSON字段名。通过json.Unmarshal()
函数将JSON字符串解析为结构体对象,然后就可以方便地访问和操作结构体成员。另外,通过json.Marshal()
函数可以将结构体转换回JSON字符串。
运行上述代码输出结果如下:
Name: Alice
Age: 25
Email: alice@example.com
{"name":"Alice","age":26,"email":"alice@example.com"}
注意:在实际开发中,请根据具体情况自行定义适合的数据结构,并确保JSON字段名与结构体字段名一致或通过json
标签指定对应关系。
内容由零声教学AI助手提供,问题来源于学员提问