我不确定如何创建struct
来存储发布到我的API的JSON对象。
JSON看起来像这样:
{
"name" : "Mr Robinson",
"email" : "test@test.com",
"username" : "robbo123",
"properties" : {
"property1" : "a property",
"property2" : "another property"
},
"permissions" : ["perm1", "perm2", "perm3"]
}
可以有任意数量的properties
,permissions
数组可以包含任意数量的值。
我用它来解码发布的值:
err := json.NewDecoder(req.Body).Decode(my_struct)
到目前为止,我的结构看起来像这样:
type User struct {
Name string `json:"name"`
Email string `json:"email"`
Username string `json:"username"`
}
答案 0 :(得分:5)
您可以使用map[string]string
作为属性,使用[]string
切片获取权限:
type User struct {
Name string `json:"name"`
Email string `json:"email"`
Username string `json:"username"`
Properties map[string]string `json:"properties"`
Permissions []string `json:"permissions"`
}
输出(包裹):
{Name:Mr Robinson Email:test@test.com Username:robbo123
Properties:map[property1:a property property2:another property]
Permissions:[perm1 perm2 perm3]}
在Go Playground上尝试完整的可运行应用。