44 lines
930 B
Go
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
|
|
}
|
|
}
|