Exemplo n.º 1
0
Arquivo: subst.go Projeto: qiniu/dyn
func AsTextString(data interface{}) (val string, err error) {

retry:
	switch v := data.(type) {
	case string:
		val = v

	case func() interface{}:
		data = v()
		goto retry

	default:
		if data == nil {
			return "", nil
		}
		v2, ok2 := dyn.Int(data)
		if ok2 {
			return strconv.FormatInt(v2, 10), nil
		}
		v3, err3 := json.Marshal(data)
		if err3 != nil {
			return "", err3
		}
		val = string(v3)
	}
	return
}
Exemplo n.º 2
0
Arquivo: subst.go Projeto: qiniu/dyn
func AsJsonstrString(data interface{}) (val string, err error) {

retry:
	switch v := data.(type) {
	case func() interface{}:
		data = v()
		goto retry

	default:
		v2, ok2 := dyn.Int(data)
		if ok2 {
			return strconv.FormatInt(v2, 10), nil
		}
		v3, err3 := json.Marshal(data)
		if err3 != nil {
			return "", err3
		}
		if v3[0] == '"' {
			v3 = v3[1 : len(v3)-1]
		}
		val = string(v3)
	}
	return
}