github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/utils/alter/convert.go (about)

     1  package alter
     2  
     3  import (
     4  	"github.com/lmorg/murex/lang/types"
     5  	"github.com/lmorg/murex/utils/json"
     6  )
     7  
     8  func StrToInterface(s string) interface{} {
     9  	var new interface{}
    10  
    11  	err := json.Unmarshal([]byte(s), &new)
    12  	if err == nil {
    13  		goto newConverted
    14  	}
    15  	new, err = types.ConvertGoType(s, types.Integer)
    16  	if err == nil {
    17  		goto newConverted
    18  	}
    19  	new, err = types.ConvertGoType(s, types.Float)
    20  	if err == nil {
    21  		goto newConverted
    22  	}
    23  	/*new, err = types.ConvertGoType(s, types.Boolean)
    24  	if err == nil {
    25  		goto newConverted
    26  	}*/
    27  	new = s
    28  
    29  newConverted:
    30  
    31  	return new
    32  }