1
0
mirror of https://github.com/duke-git/lancet.git synced 2026-02-23 13:52:26 +08:00

fix:convertor struct to map by struct ptr (#221)

Co-authored-by: emrysechobygo <emrysechobygo@hotmail.com>
This commit is contained in:
Chao Cai
2024-05-25 20:05:38 +08:00
committed by GitHub
parent d910af24e0
commit b942b7a074
2 changed files with 7 additions and 2 deletions

View File

@@ -197,6 +197,7 @@ func StructToMap(value interface{}) (map[string]interface{}, error) {
if t.Kind() == reflect.Ptr { if t.Kind() == reflect.Ptr {
t = t.Elem() t = t.Elem()
v = v.Elem()
} }
if t.Kind() != reflect.Struct { if t.Kind() != reflect.Struct {
return nil, fmt.Errorf("data type %T not support, shuld be struct or pointer to struct", value) return nil, fmt.Errorf("data type %T not support, shuld be struct or pointer to struct", value)

View File

@@ -156,13 +156,17 @@ func TestStructToMap(t *testing.T) {
Name string `json:"name"` Name string `json:"name"`
age int age int
} }
p := People{ p := &People{
"test", "test",
100, 100,
} }
pm, _ := StructToMap(p) pm, _ := StructToMap(p)
var expected = map[string]interface{}{"name": "test"} data, _ := StructToMap(p)
var expected = map[string]interface{}{
"name": "test",
}
assert.Equal(expected, pm) assert.Equal(expected, pm)
assert.Equal(expected, data)
} }
func TestColorHexToRGB(t *testing.T) { func TestColorHexToRGB(t *testing.T) {