关于go语言string转结构体的实现

本文主要介绍了go语言string转结构体的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

假设有以下 JSON 字符串:

1

2

3

4

5

6

7

8

9

10

11

{

    "name": "鸡哥",

    "age": 28,

    "gender": "男",

    "hobby": {

        "sing": "唱",

        "jump": "跳",

        "rap": "rap",

        "ball":"篮球"

    }

}

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

1

2

3

4

5

6

7

8

9

10

11

12

13

type hobby struct {

    Sing    string  `json:"sing"`

    Jump    string `json:"jump"`

    Rap     string  `json:"rap"`

    Hobby hobby    `json:"hobby"`

}

type Person struct {

    Name string `json:"name"`

    Age string  `json:"age"`

    Gender string `json:"gender`

    Hobby hobby `json:"hobby"`

}

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

package main

import (

    "encoding/json"

    "fmt"

)

func main() {

    jsonStr := `{

    "name": "鸡哥",

    "age": 28,

    "gender": "男",

    "hobby": {

        "sing": "唱",

        "jump": "跳",

        "rap": "rap",

        "ball":"篮球"

    }

}`

    var person Person

    if err := json.Unmarshal([]byte(jsonStr), &person); err != nil {

        fmt.Println("解析 JSON 失败:", err)

        return

    }

    fmt.Printf("爱好:%s\n唱:%d\n跳:%s\n爱好:%v\n", person.Sing, person.Jump, person.Rap, person.Hobby)

}

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

转自:微点阅读   https://www.weidianyuedu.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值