Reputation: 6528
I'm getting data from the redis.HGetAll
but found no clean way to convert results into my Struct.
var object struct {
x int
}
result := redisClient.HGetAll(context.Background(), "the_h_key")
//TODO import the result content into the object
Is there any function for this spectacular case?
I'm using the JSON
package(marshal, then UnMarshal to a struct).
Upvotes: 0
Views: 4845
Reputation: 445
If your datastructure isn't too complex, one convenient way to save data using redis is as jsons. Just json.Marhsal()
your struct and save it as a string and then json.Unmarshal()
that string into your struct back.
Upvotes: 1
Reputation: 21
The result from Redis is a map[string]string. For each field in the struct, get the value from the map, convert the string to the field type and assign to the field.
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
Upvotes: 2