增加Map MarshalJSON 方法
This commit is contained in:
parent
db7bf0817e
commit
0d6d72b07e
20
map.go
20
map.go
@ -9,6 +9,7 @@ package wrapper
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"git.zhangdeman.cn/zhangdeman/serialize"
|
||||||
"reflect"
|
"reflect"
|
||||||
"sync"
|
"sync"
|
||||||
)
|
)
|
||||||
@ -148,9 +149,9 @@ func (m *Map) GetDefault(field string, defaultValue any, allowNil bool) any {
|
|||||||
// Author : go_developer@163.com<白茶清欢>
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
//
|
//
|
||||||
// Date : 19:39 2024/11/6
|
// Date : 19:39 2024/11/6
|
||||||
func (m *Map) Value() Map {
|
func (m *Map) Value() map[string]any {
|
||||||
if nil == m {
|
if m.IsNil() {
|
||||||
return map[string]any{}
|
return nil
|
||||||
}
|
}
|
||||||
return *m
|
return *m
|
||||||
}
|
}
|
||||||
@ -213,3 +214,16 @@ func (m *Map) FilterDefault(fieldMap map[string]any, allowNil bool) map[string]a
|
|||||||
}
|
}
|
||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MarshalJSON Map序列化
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 15:35 2024/11/19
|
||||||
|
func (m *Map) MarshalJSON() ([]byte, error) {
|
||||||
|
mapData := m.Value()
|
||||||
|
if nil == mapData {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return serialize.JSON.MarshalForByte(mapData)
|
||||||
|
}
|
||||||
|
17
map_test.go
17
map_test.go
@ -28,3 +28,20 @@ func TestMap_IsNil(t *testing.T) {
|
|||||||
fmt.Println(m.Set("a", 1))
|
fmt.Println(m.Set("a", 1))
|
||||||
fmt.Println(m.IsNil(), m1.IsNil())
|
fmt.Println(m.IsNil(), m1.IsNil())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestMap_IsMasher(t *testing.T) {
|
||||||
|
var (
|
||||||
|
m Map
|
||||||
|
m1 = Map(map[string]any{
|
||||||
|
"a": 1,
|
||||||
|
"b": m,
|
||||||
|
"c": Map(map[string]any{
|
||||||
|
"name": "de",
|
||||||
|
}),
|
||||||
|
})
|
||||||
|
)
|
||||||
|
d, err := m.MarshalJSON()
|
||||||
|
fmt.Println(string(d), err)
|
||||||
|
d, err = m1.MarshalJSON()
|
||||||
|
fmt.Println(string(d), err)
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user