在Go語言中,使用結構體來定義JSON對象。結構體成員變量的類型必須是支持JSON的基本類型,如字符串、整型、浮點型和布爾型等。
type User struct { Name string `json:"name"` Age int `json:"age"` Email string `json:"email"` Enabled bool `json:"enabled"` }
在上面的例子中,我們定義了一個名為User的結構體,該結構體有四個成員變量:Name、Age、Email和Enabled。在成員變量的后面,默認情況下使用反引號符包含一個json tag,該tag定義了成員變量在JSON對象中的名稱。
要將結構體實例轉換成JSON對象,可以使用Go語言的標準庫中的json包。下面是將User結構體實例轉換成JSON對象的示例代碼:
func main() { user := User{ Name: "Alice", Age: 30, Email: "alice@example.com", Enabled: true, } data, err := json.Marshal(user) if err != nil { log.Fatal(err) } fmt.Printf("%s\n", data) }
在上面的代碼中,我們定義了一個名為user的User結構體實例,然后使用json.Marshal()函數將其轉換成JSON對象。如果轉換成功,則將結果輸出到標準輸出中。
要將JSON字符串轉換成結構體實例,可以使用json.Unmarshal()函數。下面是將JSON字符串轉換成User結構體實例的示例代碼:
func main() { jsonstr := `{"name":"Alice","age":30,"email":"alice@example.com","enabled":true}` var user User err := json.Unmarshal([]byte(jsonstr), &user) if err != nil { log.Fatal(err) } fmt.Printf("%+v\n", user) }
在上面的代碼中,我們定義了一個名為jsonstr的字符串,它包含表示User結構體實例的JSON對象。然后,我們使用json.Unmarshal()函數將其轉換為User結構體實例,并將其輸出到標準輸出中。