code: func Has(obj interface{}, pointer string) (rv bool) {
  	defer func() {
  		if e := recover(); e != nil {
  			rv = false
  		}
  	}()
  	tokens, err := parse(pointer)
  	if err != nil {
  		return false
  	}
  
  	i := 0
  	v := reflect.ValueOf(obj)
  	if len(tokens) > 0 && tokens[0] != "" {
  		for i < len(tokens) {
  			for v.Kind() == reflect.Interface {
  				v = v.Elem()
  			}
  			token := tokens[i]
  
  			if n, err := strconv.Atoi(token); err == nil && isIndexed(v) {
  				v = v.Index(n)
  			} else {
  				v = v.MapIndex(reflect.ValueOf(token))
  			}
  			i++
  		}
  		return v.IsValid()
  	}
  	return false
  }
docs: // Has return whether the obj has pointer.