解析到结构体
主要是把JSON数据解析到结构体,再去处理结构体数据,就会变得简单,例如有以下的JSON请求数据
Req:{
"data":{
"PlayingNumber" : "number" ,
"WaitingNumber" : "number" ,
"PlayingUsers" : [{
"OpenId" : "string"
} ...],
"WaitingUsers" : [{
"OpenId" : "string"
} ...]
}
}
在后台解析时,就要利用以下的结构体来解析数据:
type OnlinePlayer struct {
OpenId string
}
type Obj struct {
PlayingNumber int64
WaitingNumber int64
PlayingUsers []OnlinePlayer
WaitingUsers []OnlinePlayer
}
json.Unmarshal(this.Ctx.Input.RequestBody, &ob)
func (this *StatusAPIController) OnlineCount() {
var ob Obj
json.Unmarshal(this.Ctx.Input.RequestBody, &ob)
PlayingUsersNumber := ob.PlayingNumber
WaitingUsersNumber := ob.WaitingNumber
players_id := ob.PlayingUsers
for _, v := range players_id {
var player_temp *models.User
player_temp, _ = models.UserGetByOpenId(v.OpenId)
PlayingUsers = append(PlayingUsers, player_temp)
}
waits_id := ob.WaitingUsers
for _, v := range waits_id {
var wait_temp *models.User
wait_temp, _ = models.UserGetByOpenId(v.OpenId)
WaitingUsers = append(WaitingUsers, wait_temp)
}
beego.Debug(PlayingUsersNumber, WaitingUsersNumber)
}