我从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响应的方法,store也是2D切片。
我怎么能实现这个目标?甚至存储是作为2D切片的最佳方式吗?
答案 0 :(得分:3)
由于您的字符串是JSON,因此您可以使用[][]string{}
将其转换为json.Unmarshal
,如下所示:
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