我正在 golang 中创建一个 API,它将简单地以 json 格式显示地图中的所有数据。端点:/keys
type UserController struct{}
// NewUserController function
func NewUserController() *UserController {
return &UserController{}
}
// Data struct
type Data struct {
Datakey int `json:"key"`
Datavalue string `json:"value"`
}
var datamap = make(map[int]string)
func (uc UserController) getallkeys(w http.ResponseWriter, r *http.Request, p httprouter.Params) {
type Users []Data
var uj Users
for k, v := range datamap {
uj = Users{
Data{
Datakey: k,
Datavalue: v,
},
}
}
result, _ := json.Marshal(uj)
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(200)
fmt.Fprintf(w, "%s", result)
}
例如:响应应该是这样的
[
{
"key":somekey,
"value":"somevalue"
},
{
"key":somekey,
"value":"somevalue"
}
]
我不清楚如何实现这一点。上面的代码只显示地图中的最后一个数据。这是不正确的,但我不确定如何继续。如果有人能帮我解决这个问题,那就太好了。
慕斯王
相关分类