cutego/pkg/util/my_util.go

53 lines
1.1 KiB
Go

package util
import (
"cutego/pkg/logging"
"encoding/json"
)
// IF 三元表达式
func IF(condition bool, trueValue interface{}, falseValue interface{}) interface{} {
if condition {
return trueValue
}
return falseValue
}
// 结构体、Map等转Json字符串
// @Param v interface{}
// @Return Json字符串
func StructToJson(v interface{}) string {
jsonBytes, err := json.Marshal(&v)
if err != nil {
logging.ErrorLog(err)
return ""
}
s := string(jsonBytes)
//DebugLogf("StructToJson, json=%s", s)
return s
}
// Json字符串转结构体、Map等
//
// 单个对象
// s := new(models2.SysConfig)
// return common.JsonToStruct(get, s).(*models2.SysConfig)
//
// 切片(interface{}.(期望类型))
// s := make([]interface {}, 0)
// target := common.JsonToStruct(get, s)
// target.([]dataobject.SysDictData)
//
// @Param data Json字符串
// @Param s 容器(结构体、Map等)
// @Return interface{}
func JsonToStruct(data string, s interface{}) interface{} {
err := json.Unmarshal([]byte(data), &s)
if err != nil {
logging.ErrorLog(err)
return nil
}
//common.DebugLogf("JsonToStruct, obj=%v", s)
return s
}