go語(yǔ)言string轉(zhuǎn)結(jié)構(gòu)體的實(shí)現(xiàn)
在 Go 語(yǔ)言中,可以使用標(biāo)準(zhǔn)庫(kù)中的 encoding/json 包將 JSON 格式的字符串轉(zhuǎn)換為結(jié)構(gòu)體。
假設(shè)有以下 JSON 字符串:
{
"name": "雞哥",
"age": 28,
"gender": "男",
"hobby": {
"sing": "唱",
"jump": "跳",
"rap": "rap",
"ball":"籃球"
}
}可以定義一個(gè)對(duì)應(yīng)的結(jié)構(gòu)體類(lèi)型:
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)體類(lèi)型的實(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("愛(ài)好:%s\n唱:%d\n跳:%s\n愛(ài)好:%v\n", person.Sing, person.Jump, person.Rap, person.Hobby)
}在這個(gè)例子中,我們將 JSON 字符串 jsonStr 解析為類(lèi)型為 Person 的結(jié)構(gòu)體實(shí)例 person。&person 表示將 person 的地址傳遞給 json.Unmarshal() 函數(shù),讓它將解析的結(jié)果填充到 person 中。如果解析失敗,會(huì)返回一個(gè)非空的錯(cuò)誤對(duì)象。
到此這篇關(guān)于go語(yǔ)言string轉(zhuǎn)結(jié)構(gòu)體的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)go語(yǔ)言string轉(zhuǎn)結(jié)構(gòu)體內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于go實(shí)例網(wǎng)絡(luò)存儲(chǔ)協(xié)議詳解
這篇文章主要為大家介紹了基于go實(shí)例網(wǎng)絡(luò)存儲(chǔ)協(xié)議詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
Go語(yǔ)言并發(fā)處理效率響應(yīng)能力及在現(xiàn)代軟件開(kāi)發(fā)中的重要性
這篇文章主要為大家介紹了Go語(yǔ)言并發(fā)處理的效率及響應(yīng)能力以及在現(xiàn)代軟件開(kāi)發(fā)中的重要性實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
Go語(yǔ)言字符串及strings和strconv包使用實(shí)例
字符串是工作中最常用的,值得我們專(zhuān)門(mén)的練習(xí)一下,下面這篇文章主要給大家介紹了關(guān)于Go語(yǔ)言字符串及strings和strconv包使用的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-06-06
Go語(yǔ)言中常見(jiàn)的坑以及高性能編程技巧分享
代碼的穩(wěn)健性、高性能、可讀性是我們每一位coder必須去追求的目標(biāo),本文結(jié)合Go語(yǔ)言的特性做了相關(guān)總結(jié),感興趣的小伙伴可以了解一下2023-06-06
完美解決beego 根目錄不能訪問(wèn)靜態(tài)文件的問(wèn)題
下面小編就為大家?guī)?lái)一篇完美解決beego 根目錄不能訪問(wèn)靜態(tài)文件的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06

