最近在使用Beego做一些Web應(yīng)用開發(fā),在處理前端傳來的JSON數(shù)據(jù)時,遇到了一個問題,如何解析前端傳來的JSON數(shù)組?
首先,我們先需要了解一下前端傳來的JSON數(shù)組長什么樣子,例如:
[ { "name": "John", "age": 25 }, { "name": "Kate", "age": 30 } ]
上面是一個包含兩個對象的JSON數(shù)組,對象包含兩個屬性,分別是name和age。
接下來,我們可以通過Beego提供的beego.Unmarshal()函數(shù)將JSON數(shù)據(jù)轉(zhuǎn)化為Go語言的數(shù)據(jù)結(jié)構(gòu)。
type Person struct { Name string `json:"name"` Age int `json:"age"` } var data []Person err := json.Unmarshal([]byte(jsonStr), &data) if err != nil { panic(err) } for _, person := range data { fmt.Println(person.Name, person.Age) }
上面的代碼定義了一個Person結(jié)構(gòu)體,其中Name和Age屬性是通過json標(biāo)簽指定的JSON屬性名。
通過json.Unmarshal()函數(shù)將JSON數(shù)據(jù)解析并轉(zhuǎn)換成Go語言的數(shù)據(jù)結(jié)構(gòu),傳入的第二個參數(shù)是一個指向切片的指針,因為JSON數(shù)組必須解析為Go語言的切片類型。
最后,我們就可以像操作普通的Go語言的切片一樣來操作data切片中的數(shù)據(jù)了。