Files
stat_center/common/utils/convertUtil.go
T
2026-05-20 16:13:58 +08:00

65 lines
1.3 KiB
Go

package utils
import (
"encoding/json"
"fmt"
"go.mongodb.org/mongo-driver/bson"
)
//ToBsonM 将struct转换为 Bson Map
func ToBsonM(s interface{}) (bson.M, error) {
data, err := bson.Marshal(s)
if err != nil {
return nil, err
}
m := make(bson.M)
if err := bson.Unmarshal(data, &m); err != nil {
return nil, err
}
return m, nil
}
// 将page转换为数据库的skip、limit
func ToDBPage(pageNum int64, pageSize int64) (skip int64, limit int64) {
return (pageNum - 1) * pageSize, pageSize
}
//JSONStruct2Map 将struct转换为Map
func JSONStruct2Map(obj interface{}) (map[string]interface{}, error) {
m := make(map[string]interface{})
j, err := json.Marshal(obj)
if err != nil {
return nil, err
}
if err := json.Unmarshal(j, &m); err != nil {
return nil, err
}
return m, err
}
//Map2JSONStruct 将map转换为Json struct
func Map2JSONStruct(v interface{}, m map[string]interface{}) error {
j, err := json.Marshal(m)
if err != nil {
return err
}
if err := json.Unmarshal(j, v); err != nil {
return err
}
return err
}
// struct转换为Map
func Struct2Map(obj interface{}) map[string]interface{} {
m := make(map[string]interface{})
b, err := json.Marshal(obj)
if err != nil {
return m
}
if err = json.Unmarshal(b, &m); err != nil {
fmt.Println(err)
}
return m
}