网站/小程序/APP个性化定制开发,二开,改版等服务,加扣:8582-36016

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

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

    假设有以下 JSON 字符串:

    {
        "name": "鸡哥",
        "age": 28,
        "gender": "男",
        "hobby": {
            "sing": "唱",
            "jump": "跳",
            "rap": "rap",
            "ball":"篮球"
        }
    }

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

    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 字符串解析为该结构体类型的实例:

    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 中。如果解析失败,会返回一个非空的错误对象。


    评论 0

    暂无评论
    0
    0
    0
    立即
    投稿
    发表
    评论
    返回
    顶部