Go語言中的結構體是一種非常重要的數據類型,它可以描述一個實體的屬性和方法,可以作為一種數據結構進行使用。結構體的定義除了可以包含基本的數據類型和指針以外,還可以包含嵌套的結構體類型。下面是一個簡單的結構體定義:
type Person struct { Name string Age int Address Address } type Address struct { City string Province string }
在使用結構體時,我們經常需要將它轉換成JSON格式的數據進行傳輸或者存儲。Go語言內置的json包提供了非常方便的JSON序列化和反序列化功能。
將一個結構體轉換成JSON字符串非常簡單,只需要使用json.Marshal函數即可:
person := Person{ Name: "張三", Age: 18, Address: Address{ City: "北京", Province: "北京市", }, } data, err := json.Marshal(person) if err != nil { fmt.Println("Failed to marshal person:", err) } fmt.Println(string(data))
上面的代碼中,我們首先創建了一個Person類型的變量,然后使用json.Marshal函數將其轉換成JSON格式的數據,最后將JSON字符串輸出到控制臺。輸出結果如下:
{"Name":"張三","Age":18,"Address":{"City":"北京","Province":"北京市"}}
同樣地,將一個JSON字符串轉換成結構體也非常簡單。我們只需要使用json.Unmarshal函數即可:
jsonStr := `{"Name":"張三","Age":18,"Address":{"City":"北京","Province":"北京市"}}` var person Person err := json.Unmarshal([]byte(jsonStr), &person) if err != nil { fmt.Println("Failed unmarshal person:", err) } fmt.Println(person)
上面的代碼中,我們首先定義了一個JSON字符串,然后使用json.Unmarshal函數將其轉換成Person類型的數據,最后將Person類型的變量輸出到控制臺。輸出結果如下:
{張三 18 {北京 北京市}}
上一篇html將字體設置為紅色
下一篇python 遞歸爬頁面