go语言string转结构体如何实现

其他教程   发布日期:2023年09月07日   浏览次数:409

这篇“go语言string转结构体如何实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“go语言string转结构体如何实现”文章吧。

在 Go 语言中,可以使用标准库中的 encoding/json 包将 JSON 格式的字符串转换为结构体。

假设有以下 JSON 字符串:

  1. {
  2. "name": "鸡哥",
  3. "age": 28,
  4. "gender": "男",
  5. "hobby": {
  6. "sing": "唱",
  7. "jump": "跳",
  8. "rap": "rap",
  9. "ball":"篮球"
  10. }
  11. }

可以定义一个对应的结构体类型:

  1. type hobby struct {
  2. Sing string `json:"sing"`
  3. Jump string `json:"jump"`
  4. Rap string `json:"rap"`
  5. Hobby hobby `json:"hobby"`
  6. }
  7. type Person struct {
  8. Name string `json:"name"`
  9. Age string `json:"age"`
  10. Gender string `json:"gender`
  11. Hobby hobby `json:"hobby"`
  12. }

然后使用 json.Unmarshal() 函数将 JSON 字符串解析为该结构体类型的实例:

  1. package main
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. )
  6. func main() {
  7. jsonStr := `{
  8. "name": "鸡哥",
  9. "age": 28,
  10. "gender": "男",
  11. "hobby": {
  12. "sing": "唱",
  13. "jump": "跳",
  14. "rap": "rap",
  15. "ball":"篮球"
  16. }
  17. }`
  18. var person Person
  19. if err := json.Unmarshal([]byte(jsonStr), &person); err != nil {
  20. fmt.Println("解析 JSON 失败:", err)
  21. return
  22. }
  23. fmt.Printf("爱好:%s
  24. 唱:%d
  25. 跳:%s
  26. 爱好:%v
  27. ", person.Sing, person.Jump, person.Rap, person.Hobby)
  28. }

在这个例子中,我们将 JSON 字符串 jsonStr 解析为类型为 Person 的结构体实例 person。&person 表示将 person 的地址传递给 json.Unmarshal() 函数,让它将解析的结果填充到 person 中。如果解析失败,会返回一个非空的错误对象。

以上就是go语言string转结构体如何实现的详细内容,更多关于go语言string转结构体如何实现的资料请关注九品源码其它相关文章!