go - 字符串到二维切片
问题描述
我从 Redis 接收到一个 2D 数组作为字符串存储:
func main() {
client := setRedisClient()
data, err := client.Get(redisKey).Result()
// store data as a 2D slice
}
以下是数据可能看起来的示例:
[["a", "b"], ["c", "d"], ["e", "f"]]
理想情况下,我希望能够拥有 2D 切片,因为我需要能够使用索引:
dataAsSlice := [][]string {{"a", "b"}, {"c", "d"}, {"e", "f"}}
fmt.Println(dataAsSlice[0][0]) => "a"
我还没有找到一种方法来解析来自 redis 的响应,并且存储为 2D 切片。
我怎么能做到这一点?甚至将存储作为 2D 切片是最好的方法吗?
解决方案
由于您的字符串是 JSON,您可以[][]string{}
使用json.Unmarshal
以下方法将其转换为 a:
str := `[["a", "b"], ["c", "d"], ["e", "f"]]`
var dataAsSlice [][]string
err := json.Unmarshal([]byte(str), &dataAsSlice)
您可以在 Go Playground 上看到这一点:https: //play.golang.org/p/NEpIKc9Fl-s
推荐阅读
- azure - 在 Azure API Manager 和虚拟机之间创建外部网络
- android - 返回类型“CupertinoDatePicker”不是“未来”
',根据闭包上下文的要求 - r - R:如何将此整数格式转换为日期
- c - memset() 漏洞
- python - 如何在 matplotlib 中将正值设置为一种颜色,将负值设置为另一种颜色?
- android - System.exit(0) 当使用片段最小化活动时
- python - 有没有办法在一个 python 图上为一个系列的同一个标记获得不同的颜色?
- ansible - 使用 Ansible 替换文件中的嵌套变量
- javascript - 如何使用javascript打开任何文件
- javascript - 单击自定义事件后过滤清空数组