字符串到2D切片

时间:2018-05-31 09:09:49

标签: go slice

我从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切片的最佳方式吗?

1 个答案:

答案 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