code: func (j *JSONPath) evalWildcard(input []reflect.Value, node *WildcardNode) ([]reflect.Value, error) {
  	results := []reflect.Value{}
  	for _, value := range input {
  		value, isNil := template.Indirect(value)
  		if isNil {
  			continue
  		}
  
  		kind := value.Kind()
  		if kind == reflect.Struct {
  			for i := 0; i < value.NumField(); i++ {
  				results = append(results, value.Field(i))
  			}
  		} else if kind == reflect.Map {
  			for _, key := range value.MapKeys() {
  				results = append(results, value.MapIndex(key))
  			}
  		} else if kind == reflect.Array || kind == reflect.Slice || kind == reflect.String {
  			for i := 0; i < value.Len(); i++ {
  				results = append(results, value.Index(i))
  			}
  		}
  	}
  	return results, nil
  }
docs: // evalWildcard extracts all contents of the given value