首页 > 解决方案 > 字符串到二维切片

问题描述

我从 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 切片是最好的方法吗?

标签: goslice

解决方案


由于您的字符串是 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


推荐阅读