我定义了这样的结构。
type Pages struct {
Items []map[string]string
}
在for循环中,我使用var item = make(map[string]string)
创建项目。
完整代码
pages := Pages{}
for _, partitionKey := range keys {
fields, err := redis.Strings(conn.Do("hgetall", partitionKey))
if err == nil {
var item = make(map[string]string)
item["id"] = strings.Replace(partitionKey, "pages:", "", -1)
for i := 0; i < len(fields); i += 2 {
key, _ := redis.String(fields[i], nil)
value, _ := redis.String(fields[i+1], nil)
item[key] = value
}
fmt.Println("\n", item)
// this does not work
//append(pages.Items, item)
}
}
fmt.Println(pages)
如何将新创建的项目添加到Pages结构中的Items数组?
基于以下答案的解决方案。
type Pages struct {
Items []map[string]string `json:"items"`
}
pages := Pages{}
for _, partitionKey := range keys {
item, err := redis.StringMap(conn.Do("hgetall", partitionKey))
if err == nil {
item["id"] = strings.Replace(partitionKey, "pages:", "", -1)
pages.Items = append(pages.Items, item)
}
}
答案 0 :(得分:1)
pages.Items = append(pages.Items, item)