feat: add JsonSerializer

This commit is contained in:
weloe
2023-08-10 01:51:10 +08:00
parent 981bb5a0c3
commit 5f31fdee04
2 changed files with 28 additions and 21 deletions

View File

@@ -1,29 +1,10 @@
package persist package persist
import (
"encoding/json"
)
type JsonAdapter struct { type JsonAdapter struct {
*DefaultAdapter *DefaultAdapter
*JsonSerializer
} }
func NewJsonAdapter() *JsonAdapter { func NewJsonAdapter() *JsonAdapter {
return &JsonAdapter{NewDefaultAdapter()} return &JsonAdapter{NewDefaultAdapter(), NewJsonSerializer()}
}
func (j *JsonAdapter) Serialize(data interface{}) ([]byte, error) {
serializedData, err := json.Marshal(data)
if err != nil {
return nil, err
}
return serializedData, nil
}
func (j *JsonAdapter) UnSerialize(data []byte, result interface{}) error {
err := json.Unmarshal(data, &result)
if err != nil {
return err
}
return nil
} }

View File

@@ -0,0 +1,26 @@
package persist
import "encoding/json"
type JsonSerializer struct {
}
func NewJsonSerializer() *JsonSerializer {
return &JsonSerializer{}
}
func (j *JsonSerializer) Serialize(data interface{}) ([]byte, error) {
serializedData, err := json.Marshal(data)
if err != nil {
return nil, err
}
return serializedData, nil
}
func (j *JsonSerializer) UnSerialize(data []byte, result interface{}) error {
err := json.Unmarshal(data, &result)
if err != nil {
return err
}
return nil
}