code: func convertSliceNumbers(s []interface{}) error {
  	var err error
  	for i, v := range s {
  		switch v := v.(type) {
  		case json.Number:
  			s[i], err = convertNumber(v)
  		case map[string]interface{}:
  			err = convertMapNumbers(v)
  		case []interface{}:
  			err = convertSliceNumbers(v)
  		}
  		if err != nil {
  			return err
  		}
  	}
  	return nil
  }
docs: // convertSliceNumbers traverses the slice, converting any json.Number values to int64 or float64.
  // values which are map[string]interface{} or []interface{} are recursively visited