golang map json 结构体

打印 上一主题 下一主题

主题 904|帖子 904|积分 2712

要将JSON转换为Go结构体,您可以使用json.Unmarshal()函数。首先,您需要定义一个与JSON数据结构匹配的Go结构体,然后使用json.Unmarshal()将JSON数据解码为该结构体。
以下是一个示例:
假设有如下JSON数据:
  1. {
  2.   "name": "John Doe",
  3.   "age": 30,
  4.   "email": "johndoe@example.com"
  5. }
复制代码
  
您可以将其转换为Go结构体如下:
  1. package main
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. )
  6. type Person struct {
  7. Name  string `json:"name"`
  8. Age   int    `json:"age"`
  9. Email string `json:"email"`
  10. }
  11. func main() {
  12. jsonData := `{
  13.    "name": "John Doe",
  14.    "age": 30,
  15.    "email": "johndoe@example.com"
  16. }`
  17. var person Person
  18. err := json.Unmarshal([]byte(jsonData), &person)
  19. if err != nil {
  20. fmt.Println("Error:", err)
  21. return
  22. }
  23. fmt.Println("Name:", person.Name)
  24. fmt.Println("Age:", person.Age)
  25. fmt.Println("Email:", person.Email)
  26. }
复制代码
  
在上面的示例中,我们定义了一个名为Person的结构体,其中的字段与JSON数据中的键名对应。然后,我们使用json.Unmarshal()将JSON数据解码为Person结构体对象。最后,我们可以访问解码后的结构体对象的字段。
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
在Go语言中,将结构体转换为JSON格式可以使用encoding/json包。以下是一个简单的示例代码,演示了如何将结构体转换为JSON格式:
  1. package main
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. )
  6. type Person struct {
  7. Name  string `json:"name"`
  8. Age   int    `json:"age"`
  9. Email string `json:"email"`
  10. }
  11. func main() {
  12. person := Person{
  13. Name:  "John Doe",
  14. Age:   30,
  15. Email: "johndoe@example.com",
  16. }
  17. jsonData, err := json.Marshal(person)
  18. if err != nil {
  19. fmt.Println("转换为JSON时发生错误:", err)
  20. return
  21. }
  22. fmt.Println(string(jsonData))
  23. }
复制代码
  
在上面的示例中,我们定义了一个名为Person的结构体,并在main()函数中创建了一个person实例。然后,我们使用json.Marshal()函数将结构体转换为JSON格式的字节数组。最后,通过string(jsonData)将字节数组转换为字符串并打印出来。
运行上述代码将输出以下结果:
  1. perl{"name":"John Doe","age":30,"email":"johndoe@example.com"}
复制代码
  
请注意,在结构体的字段上使用json:"..."标签可以指定JSON中对应字段的名称。这允许您自定义JSON输出中的字段名称。如果没有使用标签,则默认情况下,结构体的字段名将成为JSON中的键。
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

愛在花開的季節

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表