如何将行作为map [string] map [string] interface {}
不能在分配中使用s.ID(类型字符串)作为map [string] interface {}类型
var x = ['day 1', 'day 1', 'day 1', 'day 1', 'day 1', 'day 1',
'day 2', 'day 2', 'day 2', 'day 2', 'day 2', 'day 2']
列表服务器
var row = make(map[string]map[string]interface{})
}
答案 0 :(得分:3)
row
是map[string]interface{}
的SLICE。像这样初始化切片时,需要提供长度:
row := make([]map[string]interface{}, 0)
切片的索引必须是整数,这就是为什么您遇到注释中提到的第二个问题的原因。
让我们假设serverList
是一个切片。您的代码可能被修改为:
rows := make([]map[string]interface{}, 0) // create a slice
// ... codes omitted
for _, s := range serverList {
row := make(map[string]interface{}) // create an item
row["ID"] = s.ID
row["Name"] = s.Name
// ... codes omitted
row["Flavor"] = s.Flavor
row["Created"] = time.Now().Sub(t)
row["Status"] = s.Status
rows = append(rows, row) // append the item to the slice
}
return rows, err