我不确定如何创建一个 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"`
}
最佳答案
您可以对属性使用 map[string]string
,对权限使用 []string
slice :
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 上尝试完整的可运行应用程序.
关于json - 如何在结构中存储对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30371353/