code: func (s Session) Serialize() map[string]string {
  	sessionJsonMap := s.getSessionJsonMap()
  	newMap := map[string]string{}
  	newObjectMap := map[string]string{}
  	for key, value := range sessionJsonMap {
  		newObjectMap[key] = value
  	}
  	for key, value := range s {
  		if key == SessionObjectKeyName || key == SessionMapKeyName {
  			continue
  		}
  		if reflect.ValueOf(value).Kind() == reflect.String {
  			newMap[key] = value.(string)
  			continue
  		}
  		println("Serialize the data for", key)
  		if data, err := json.Marshal(value); err != nil {
  			sessionLog.Error("Unable to marshal session ", "key", key, "error", err)
  			continue
  		} else {
  			newObjectMap[key] = string(data)
  		}
  	}
  	if len(newObjectMap) > 0 {
  		if data, err := json.Marshal(newObjectMap); err != nil {
  			sessionLog.Error("Unable to marshal session ", "key", SessionObjectKeyName, "error", err)
  
  		} else {
  			newMap[SessionObjectKeyName] = string(data)
  		}
  	}
  
  	return newMap
  }
docs: // Convert the map to a simple map[string]string map
  // this will marshal any non string objects encountered and store them the the jsonMap
  // The expiration time will also be assigned