Go語言內置了對JSON的支持,這使得在Go語言中對JSON進行操作非常方便。多層次JSON解析是在處理JSON數據時非常常見的一種情境。具體的實現方法如下:
type Person struct { Name string `json:"name"` Age int `json:"age"` Address `json:"address"` // 嵌套解析Address } type Address struct { Province string `json:"province"` City string `json:"city"` } func UnmarshalJSON(data []byte) (person Person, err error) { err = json.Unmarshal(data, &person) return } func main() { data := []byte(` { "name": "alice", "age": 18, "address": { "province": "guangdong", "city": "shenzhen" } } `) person, err := UnmarshalJSON(data) if err != nil { log.Fatal(err) } fmt.Printf("name: %v age: %v province: %v city: %v", person.Name, person.Age, person.Address.Province, person.Address.City) }
代碼中的Person結構體中嵌套了Address,而在UnmarshalJSON方法中,我們使用&person解析JSON數據。回到main函數,我們將JSON數據傳入UnmarshalJSON方法并得到解析后的person對象。最終通過打印輸出person的屬性值,我們就能夠在控制臺輸出正確的結果。