您的位置:首页 > Web前端 > JavaScript

golang的JSON处理

2017-03-24 17:38 246 查看

解析到结构体

主要是把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)
,如此就可以解析请求体JSON中的数据看。

完整版代码:

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)
}


参考:JS
4000
ON处理
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: