skip to Main Content

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).

2

Answers


  1. 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
    
    Login or Signup to reply.
  2. 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.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search