starter/pkg/jsonx/json.go
2026-03-28 19:29:40 +08:00

44 lines
930 B
Go

package jsonx
import (
"context"
"encoding/json"
"gitea.micah.wiki/pandora/starter/pkg/logx"
)
var (
Marshal = json.Marshal
Unmarshal = json.Unmarshal
)
func UnsafeMarshal(ctx context.Context, v any) string {
b, err := Marshal(v)
if err != nil {
logx.CtxError(ctx, "Json UnsafeMarshal error, value: %+v, err: %+v.", v, err)
return ""
}
return string(b)
}
func UnsafeUnmarshal(ctx context.Context, data string, v any) {
err := Unmarshal([]byte(data), v)
if err != nil {
logx.CtxError(ctx, "Json UnsafeUnmarshal error, data: %s, err: %+v.", data, err)
return
}
}
func ConvertMarshal(ctx context.Context, from any, to any) {
b, err := Marshal(from)
if err != nil {
logx.CtxError(ctx, "Json ConvertMarshal error, from: %+v, err: %+v.", from, err)
return
}
err = json.Unmarshal(b, to)
if err != nil {
logx.CtxError(ctx, "Json ConvertMarshal error, from: %+v, err: %+v.", from, err)
return
}
}