diff --git a/rfx.go b/rfx.go index 2087080..e2ccb67 100644 --- a/rfx.go +++ b/rfx.go @@ -1,6 +1,7 @@ package reflux import ( + "encoding/json" "fmt" "reflect" "strconv" @@ -657,9 +658,14 @@ func (r *rfx) Uint8() uint8 { // String 将当前值转换为 string 类型 func (r *rfx) String() string { - result, err := cast.ToStringE(r.Any()) + data := r.Any() + result, err := cast.ToStringE(data) if err != nil { - panic(fmt.Sprintf("rfx: failed to convert to string: %v", err)) + if b, e := json.Marshal(data); e == nil { + result = string(b) + } else { + panic(fmt.Sprintf("rfx: failed to convert to string: %v", err)) + } } return result }