溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

go語言string轉(zhuǎn)結(jié)構(gòu)體如何實(shí)現(xiàn)

發(fā)布時間:2023-03-17 11:24:52 來源:億速云 閱讀:132 作者:iii 欄目:開發(fā)技術(shù)

這篇“go語言string轉(zhuǎn)結(jié)構(gòu)體如何實(shí)現(xiàn)”文章的知識點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“go語言string轉(zhuǎn)結(jié)構(gòu)體如何實(shí)現(xiàn)”文章吧。

在 Go 語言中,可以使用標(biāo)準(zhǔn)庫中的 encoding/json 包將 JSON 格式的字符串轉(zhuǎn)換為結(jié)構(gòu)體。

假設(shè)有以下 JSON 字符串:

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

可以定義一個對應(yīng)的結(jié)構(gòu)體類型:

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() 函數(shù)將 JSON 字符串解析為該結(jié)構(gòu)體類型的實(shí)例:

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 的結(jié)構(gòu)體實(shí)例 person。&person 表示將 person 的地址傳遞給 json.Unmarshal() 函數(shù),讓它將解析的結(jié)果填充到 person 中。如果解析失敗,會返回一個非空的錯誤對象。

以上就是關(guān)于“go語言string轉(zhuǎn)結(jié)構(gòu)體如何實(shí)現(xiàn)”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)
AI