aqi/ws/data_h.go
2024-06-18 18:09:39 +08:00

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
}