在Go語言中,操作JSON格式的數據非常方便。Go內置的json包提供了兩個方法:Marshal和Unmarshal。Marshal方法可以將Go語言中的數據類型轉換為JSON格式,而Unmarshal方法則可以將JSON數據反序列化成Go語言的數據類型。
// 將Go語言中的數據類型轉換為JSON格式 package main import ( "encoding/json" "fmt" ) type Person struct { Name string `json:"name"` Age int `json:"age"` } func main() { p := Person{ Name: "張三", Age: 23, } b, err := json.Marshal(p) if err != nil { fmt.Println("JSON格式化失敗:", err) } fmt.Println(string(b)) }
通過上述代碼可以看到,我們定義了一個Person結構體,里面有Name和Age字段。在main函數中,我們創建了一個Person對象,然后使用json.Marshal方法將其轉換為JSON格式的字符串。
代碼輸出的結果為:
{"name":"張三","age":23}
除了將Go語言中的數據類型轉換為JSON格式,還可以將JSON數據轉換為Go語言的數據類型。示例代碼如下:
// 將JSON數據反序列化成Go語言的數據類型 package main import ( "encoding/json" "fmt" ) type Person struct { Name string `json:"name"` Age int `json:"age"` } func main() { s := `{"name":"張三","age":23}` var p Person err := json.Unmarshal([]byte(s), &p) if err != nil { fmt.Println("JSON解析失敗:", err) } fmt.Println(p) }
上面的代碼中,我們首先定義了一個JSON格式的字符串,然后使用json.Unmarshal方法將其轉換為Person結構體類型的變量。
輸出的結果為:
{name:張三 age:23}
通過上述代碼,我們可以看到,Go語言操作JSON格式的數據非常方便,不僅支持將Go語言中的數據類型轉換為JSON格式,還支持將JSON數據反序列化成Go語言的數據類型。
上一篇python 路由是什么
下一篇c json字典互轉