4 回答
TA贡献1887条经验 获得超5个赞
您可以使用以下格式创建并初始化 json 对象。
import (
"fmt",
"encoding/json"
)
type Object struct {
Update Update `json:"update"`
}
type Update struct {
Comments []Comment `json:"comments"`
}
type Comment struct {
Add Add `json:"add"`
}
type Add struct {
Body Body `json:"body"`
}
type Body string
func main() {
obj := make(map[string]Object)
obj["buzz"] = Object{
Update: Update{
Comments: []Comment{
Comment{
Add: Add{
Body: "foo",
},
},
},
},
}
fmt.Printf("%+v\n", obj)
obj2B, _ := json.Marshal(obj["buzz"])
fmt.Println(string(obj2B))
}
初始化对象 obj 将是
map[buzz:{Update:{Comments:[{Add:{Body:foo}}]}}]
TA贡献1828条经验 获得超13个赞
可能晚了3年,但我自己也偶然发现了这个问题,显然你也可以这样做:
data := map[string]interface{}{
"update": map[string]interface{}{
"comment": []map[string]interface{}{
{
"add": map[string]string{
"body": "this is a body",
},
},
},
},
}
TA贡献1797条经验 获得超6个赞
我成功了,我觉得这很丑。
// Prepare the data
var data = make(map[string]interface{})
var comments []map[string]map[string]string
var comment = make(map[string]map[string]string)
comment["add"] = map[string]string{
"body": "Test",
}
comments = append(comments, comment)
var update = make(map[string]interface{})
update["comment"] = comments
data["update"] = update
- 4 回答
- 0 关注
- 256 浏览
添加回答
举报