mirror of
https://github.com/wonli/aqi.git
synced 2024-06-28 09:57:05 +08:00
63 lines
902 B
Go
63 lines
902 B
Go
package ws
|
|
|
|
import (
|
|
"encoding/json"
|
|
|
|
"go.uber.org/zap"
|
|
|
|
"github.com/wonli/aqi/logger"
|
|
)
|
|
|
|
// H 类似gin.H
|
|
type H map[string]any
|
|
|
|
func (h *H) Get(key string) (any, bool) {
|
|
if *h == nil {
|
|
return nil, false
|
|
}
|
|
|
|
val, ok := (*h)[key]
|
|
return val, ok
|
|
}
|
|
|
|
func (h *H) Set(key string, val any) {
|
|
if *h == nil {
|
|
*h = make(map[string]any)
|
|
}
|
|
|
|
(*h)[key] = val
|
|
}
|
|
|
|
func (h *H) Unmarshal(v any) error {
|
|
d, err := json.Marshal(h)
|
|
if err != nil {
|
|
logger.SugarLog.Error("构造参数失败",
|
|
zap.String("error", err.Error()),
|
|
)
|
|
return err
|
|
}
|
|
|
|
err = json.Unmarshal(d, v)
|
|
if err != nil {
|
|
logger.SugarLog.Error("解析参数失败",
|
|
zap.String("error", err.Error()),
|
|
)
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func (h *H) Marshal() []byte {
|
|
d, err := json.Marshal(h)
|
|
if err != nil {
|
|
logger.SugarLog.Error("构造参数失败",
|
|
zap.String("error", err.Error()),
|
|
)
|
|
|
|
return d
|
|
}
|
|
|
|
return d
|
|
}
|