我正在从数据库获取数据 redis.HGetAll ,但没有找到将结果转换为我的结构的干净方法
redis.HGetAll
var object struct { x int } result := redisClient.HGetAll(context.Background(), "the_h_key") //TODO import the result content into the object
这个壮观的案子有什么作用吗?现在我用的是 json 包(封送,然后解组到结构)。
json
6tr1vspr1#
如果您的数据结构不太复杂,那么使用redis保存数据的一种方便方法就是json。只是 json.Marhsal() 并将其另存为字符串 json.Unmarshal() 把那个字符串放进你的结构里。
json.Marhsal()
json.Unmarshal()
polkgigr2#
redis的结果是map[string]字符串。对于结构中的每个字段,从Map中获取值,将字符串转换为字段类型并分配给字段。
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
2条答案
按热度按时间6tr1vspr1#
如果您的数据结构不太复杂,那么使用redis保存数据的一种方便方法就是json。只是
json.Marhsal()
并将其另存为字符串json.Unmarshal()
把那个字符串放进你的结构里。polkgigr2#
redis的结果是map[string]字符串。对于结构中的每个字段,从Map中获取值,将字符串转换为字段类型并分配给字段。