code: func (j *JSONLoader) Load(s interface{}) error {
  	var r io.Reader
  	if j.Reader != nil {
  		r = j.Reader
  	} else if j.Path != "" {
  		file, err := getConfig(j.Path)
  		if err != nil {
  			return err
  		}
  		defer file.Close()
  		r = file
  	} else {
  		return ErrSourceNotSet
  	}
  
  	return json.NewDecoder(r).Decode(s)
  }
docs: // Load loads the source into the config defined by struct s.
  // Defaults to using the Reader if provided, otherwise tries to read from the
  // file