JSON转换放在内置函数里
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"time"
|
||||
|
||||
"gorm.io/datatypes"
|
||||
@@ -170,3 +172,26 @@ type UserActionLog struct {
|
||||
func (UserActionLog) TableName() string {
|
||||
return "user_action_logs"
|
||||
}
|
||||
|
||||
// ParseTargetResource 解析 JSON 属性到一个具体的结构体中。
|
||||
// 调用方需要传入一个指向目标结构体实例的指针。
|
||||
func (l *UserActionLog) ParseTargetResource(v interface{}) error {
|
||||
if l.TargetResource == nil {
|
||||
return errors.New("目标资源为空,无法解析")
|
||||
}
|
||||
return json.Unmarshal(l.TargetResource, v)
|
||||
}
|
||||
|
||||
// SetTargetResource 将任意结构体序列化为 JSON 并设置到 TargetResource 字段
|
||||
func (l *UserActionLog) SetTargetResource(data interface{}) error {
|
||||
if data == nil {
|
||||
l.TargetResource = nil
|
||||
return nil
|
||||
}
|
||||
bytes, err := json.Marshal(data)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
l.TargetResource = bytes
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user