代码之家  ›  专栏  ›  技术社区  ›  Graham Slick

字符串到二维切片

  •  -1
  • Graham Slick  · 技术社区  · 6 年前

    我从redis接收到一个2d数组作为字符串:

    func main() {
        client := setRedisClient()
        data, err := client.Get(redisKey).Result()
        // store data as a 2D slice
    }
    

    下面是一个数据可能是什么样子的示例:

    [["a", "b"], ["c", "d"], ["e", "f"]]
    

    理想情况下,我希望能够有一个二维切片,因为我需要能够使用索引:

    dataAsSlice := [][]string {{"a", "b"}, {"c", "d"}, {"e", "f"}} 
    fmt.Println(dataAsSlice[0][0]) => "a"
    

    我还没有找到解析redis响应的方法,而store是一个2d切片。

    我怎么能做到这一点?即使存储是作为一个二维切片的最佳方式吗?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Grokify Milad    6 年前

    因为字符串是json,所以可以将其转换为 [][]string{} 通过使用 json.Unmarshal 具体如下:

    str := `[["a", "b"], ["c", "d"], ["e", "f"]]`
    var dataAsSlice [][]string
    err := json.Unmarshal([]byte(str), &dataAsSlice)
    

    你可以在围棋场上看到这个动作: https://play.golang.org/p/NEpIKc9Fl-s