如何制作像"Data":[{"3":{...}},{"4":{...}}]
这样的地图
控制器
jsons := make(map[string]interface{})
listUsers := identity.ListUsers()
users := make(map[int]interface{})
for k, j := range listUsers {
if j.Description != "" {
users[k] = j
}
}
jsons["Data"] = users
u.Data["json"] = jsons
u.ServeJSON()
JSON
"Data": {
"3": {
"default_project_id": "",
"description": "description",
"domain_id": "default",
"enabled": true
},
"5": {
"default_project_id": "9e266e1a750e45f8862e83341a5d0970",
"description": "description",
"domain_id": "default",
"enabled": true
}
}
listUsers [] users.User 用户映射[int]界面{}
当我得到答案时,我必须添加更多详细信息。
答案 0 :(得分:1)
首先,"Data":[ "3":{...},"4":{...} ]
不是json的有效格式。您不能将键值数据放入[]
内,但{}
除外。因此[]
内的某些内容必须是清单。因此您可以像"Data":[{"3":{...}},{"4":{...}}]
一样更改它。
然后更改控制器代码,例如users := make([]map[int]interface{},0)
答案 1 :(得分:1)
我认为您应该创建新的类型:
myTree->header()->setFrameShape(QFrame::NoFrame);
myTree->header()->setFrameShadow(QFrame::Plain);
}
类型为MyType的地图[int]已自动生成
我认为创建切片地图不是一个好主意,但是可以:
type AutoGenerated struct {
DefaultProjectID string `json:"default_project_id"`
Description string `json:"description"`
DomainID string `json:"domain_id"`
Enabled bool `json:"enabled"`
要从JSON生成新的go-type,可以使用:https://mholt.github.io/json-to-go/