code: func (wc *WebhookContext) JSON(out interface{}) error {
  	var err error
  	if wc.body == nil {
  		wc.firstParse = true
  		wc.body, err = ioutil.ReadAll(wc.gin.Request.Body)
  
  		if err != nil {
  			return err
  		}
  	}
  	err = json.Unmarshal(wc.body, out)
  
  	if err != nil && strings.HasPrefix(string(wc.body), "payload=") {
  		s := string(wc.body)
  		s, err = uurl.QueryUnescape(s[8:])
  		if err != nil {
  			return err
  		}
  		err = json.Unmarshal([]byte(s), out)
  
  	}
  	return err
  }
docs: // JSON decodes the JSON in the request's body to the out interface