91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

Golang怎么進行struct轉換

發布時間:2023-03-22 17:11:41 來源:億速云 閱讀:114 作者:iii 欄目:編程語言

這篇文章主要介紹了Golang怎么進行struct轉換的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Golang怎么進行struct轉換文章都會有所收獲,下面我們一起來看看吧。

定義結構體

首先,我們先來定義一個結構體:

type Person struct {
    Name    string
    Age     int
    Address Address
}

type Address struct {
    Province string
    City     string
    Street   string
}

在以上的代碼中,我們定義了兩個結構體,一個是Person,它包含了Name、Age和Address三個屬性,其中Address是一個嵌套的結構體。

將結構體轉成 JSON

在實際的開發中,我們經常需要將結構體轉成JSON格式。Golang中內置的encoding/json包提供了方便的JSON編碼和解碼功能,我們可以使用該包將結構體轉成JSON格式的數據。

import "encoding/json"

func main() {
    person := Person{Name: "Tom", Age: 18, Address: Address{Province: "Beijing", City: "Beijing", Street: "Wudaokou"}}
    jsonBytes, err := json.Marshal(person)
    if err != nil {
        fmt.Println(err)
    }
    fmt.Println(string(jsonBytes))
}

以上代碼中,我們先創建了一個Person實例,然后調用json.Marshal()將該實例轉成了JSON格式的數據。在轉換過程中,如果存在錯誤,將會輸出錯誤信息,否則輸出轉換后結果的字符串。

將JSON轉成結構體

除了將結構體轉成JSON格式,我們還經常需要將JSON格式的數據轉成結構體。在上面的例子中,我們已經將person轉成了JSON格式,現在我們來將JSON數據轉成結構體。

jsonStr := `{"Name":"Tom","Age":18,"Address":{"Province":"Beijing","City":"Beijing","Street":"Wudaokou"}}`
person := Person{}
err := json.Unmarshal([]byte(jsonStr), &person)
if err != nil {
    fmt.Println(err)
}
fmt.Println(person)

在以上代碼中,我們先將JSON格式的數據定義為jsonStr,然后調用json.Unmarshal()將其轉成Person結構體。同樣的,在轉換過程中如果出現錯誤,輸出錯誤信息,否則輸出轉換后的Person結構體實例。

字段轉換

有些情況下,數據的字段名和結構體中字段名不一致,這時候需要進行字段轉換。Golang中,可以通過將結構體的屬性名修改為Tag的方式實現。

type Person struct {
    Name    string `json:"name"`
    Age     int    `json:"age"`
    Address Address
}

type Address struct {
    Province string `json:"province"`
    City     string `json:"city"`
    Street   string `json:"street"`
}

以上代碼中,我們在結構體屬性名前添加了json tag,它指定了JSON的屬性名。在轉換過程中,如果tag存在,將以tag為準。

結構體中存在數組

在結構體中,可能會存在包含數組的屬性。對于這種情況,我們需要對數組進行遍歷操作。

type Person struct {
    Name    string    `json:"name"`
    Age     int       `json:"age"`
    Address []Address `json:"address"`
}

type Address struct {
    Province string `json:"province"`
    City     string `json:"city"`
    Street   string `json:"street"`
}

func main() {
    jsonStr := `{"name":"Tom","age":18,"address":[{"province":"Beijing","city":"Beijing","street":"Wudaokou"},{"province":"Henan","city":"Kaifeng","street":"Longting"}]}`
    person := Person{}
    err := json.Unmarshal([]byte(jsonStr), &person)
    if err != nil {
        fmt.Println(err)
    }
    for _, a := range person.Address {
        fmt.Println(a.Province, a.City, a.Street)
    }
}

以上代碼中,Person結構體中包含了一個Address的數組,我們需要對其進行遍歷。在轉換過程中,我們可以通過Unmarshal將JSON格式的數據轉成Person結構體實例,然后通過對Address數組進行遍歷操作,輸出每個Address實例的Province、City和Street屬性。

關于“Golang怎么進行struct轉換”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Golang怎么進行struct轉換”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

含山县| 临高县| 海门市| 鄂托克前旗| 南漳县| 宜章县| 肥东县| 梅河口市| 邵东县| 文昌市| 仙居县| 鲜城| 纳雍县| 南乐县| 肃北| 夏津县| 武山县| 永修县| 南充市| 北京市| 林口县| 舞钢市| 荔波县| 乐都县| 金秀| 河东区| 武乡县| 平湖市| 垦利县| 万州区| 治多县| 玉树县| 富民县| 项城市| 延庆县| 弥勒县| 玉林市| 武夷山市| 卓资县| 隆尧县| 张家界市|