废话不多说,排版不多管了,直接把问题拿出来!又卡我几个小时
我定义了结构体数组,将数据库中的用户数据拿出来存储进去,然后按照总分顺序排名成功!好了,我开始返回JSON形式了:

但不幸的事情是:前端需要的是数组形式!!!,并且如上方法直接返回的话,返回结果按照字典序排列,不能保持上述键值对的顺序!!!看下图!顺序是字典序排列!


那么——我们返回一两个参数还可以用gin.H{ }来解决,参数一多,再加上有序性,就得换一种方法来返回JSON数组了! 下面的代码是通常可以用到的:

//这种通常用gin.H
c.JSON(http.StatusOK, gin.H{
	"code": 200
	"msg":  succeed_login
})

我们要返回JSON有序数组,OK,那就直接给切片(大小刚合适),但是!我们因为前期需要排序呀,所以定义的数组方便运算,而数组大小又是开很大的呢,所以我们在返回JSON前转回切片!
用到的方法如下:

type Rank struct {
	//用到json记得一定大写首字母
	UserId                string `json:"userId"`
	Solved_problem_number string `json:"solved_problem_number"`
	Solved_problem_score  string `json:"solved_problem_score"`
}

s := make([]Rank, 0)
for i := 0; i < cnt; i++{
	s = append(s, rank[i])
}
fmt.Println(s)
c.JSON(http.StatusOK, gin.H{
	"rank": s,
})

于是,我们便得到了JSON字符串的返回形式!


交互结果如下:

总结

{ [ { },{ },{ },{ } ], xxx }