Go語言的JSON結構體是一個非常重要的數據類型。它可以將JSON數據轉化為Go語言中的結構體類型,方便在程序中進行操作。
// 定義一個JSON結構體 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"` } // 將JSON數據轉化為結構體 jsonStr := `{"name":"Tom","age":28,"address":{"province":"Guangdong","city":"Guangzhou","street":"Tianhe"}}` var person Person err := json.Unmarshal([]byte(jsonStr), &person) if err != nil { fmt.Println("JSON轉化為結構體失敗:", err) } fmt.Println(person.Name, person.Age, person.Address.Province, person.Address.City, person.Address.Street)
上面的代碼中,我們定義了一個Person結構體和一個Address結構體。Person結構體的每個字段都使用了`json`標簽,表示該字段在JSON數據中的鍵名。然后我們定義了一個JSON字符串變量,使用`json.Unmarshal`方法將JSON數據轉化為結構體。轉化成功后,我們可以可以通過結構體的字段值訪問到JSON數據的各個字段。
需要注意的是,JSON數據的鍵名必須要和結構體的字段名相匹配,否則轉換會失敗。同時,在轉換時還需要注意字段值的類型,如果類型不匹配,也會導致轉換失敗。