在Go語(yǔ)言中,我們可以用自帶的JSON標(biāo)準(zhǔn)庫(kù)來(lái)解析JSON數(shù)組。下面是一個(gè)簡(jiǎn)單的例子,假設(shè)我們有下面這個(gè)JSON數(shù)組:
[ { "name": "Alice", "age": 23, "address": { "city": "Shanghai", "country": "China" } }, { "name": "Bob", "age": 28, "address": { "city": "Beijing", "country": "China" } } ]
我們可以定義一個(gè)struct來(lái)表示每個(gè)對(duì)象:
type Person struct { Name string Age int Address struct { City string Country string } }
然后我們可以定義一個(gè)slice來(lái)存儲(chǔ)所有的Person:
var persons []Person
接下來(lái),使用json.Unmarshal函數(shù)將JSON數(shù)組解析到persons變量中:
err := json.Unmarshal([]byte(jsonStr), &persons) if err != nil { log.Fatal(err) }
其中jsonStr是存儲(chǔ)JSON數(shù)據(jù)的字符串。如果解析成功,persons變量就會(huì)包含所有的Person對(duì)象。我們可以像使用其他slice一樣使用它們,例如:
fmt.Println(persons[0].Name) // 輸出 "Alice" fmt.Println(persons[1].Address.City) // 輸出 "Beijing"