0

我正在从 中获取数据redis.HGetAll,但没有找到将结果转换为我的 Struct 的干净方法

var object struct {
    x int
}

result := redisClient.HGetAll(context.Background(), "the_h_key")

//TODO import the result content into the object 

这个壮观的案例有什么功能吗?

现在我使用json包(marshal,然后 UnMarshal 到 struct”。

4

2 回答 2

2

Redis 的结果是一个 map[string]string。对于结构中的每个字段,从映射中获取值,将字符串转换为字段类型并分配给字段。

 var o object
 var err error

 o.x, err = strconv.Atoi(m["x"])
 if err != nil {
      // handle the error
 }

 ... repeat for other fields as needed
于 2020-08-01T16:26:21.017 回答
1

如果您的数据结构不是太复杂,使用 redis 保存数据的一种方便方法是 jsons。只是json.Marhsal()您的结构并将其保存为字符串,然后json.Unmarshal()将该字符串保存到您的结构中。

于 2020-08-01T17:03:44.893 回答