Skip to content

Commit e5a5d63

Browse files
committed
Add Convert(JSON|SQL) funcs
1 parent 6c98a50 commit e5a5d63

File tree

2 files changed

+57
-0
lines changed

2 files changed

+57
-0
lines changed

converter/json.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,3 +80,24 @@ func (v *NullJSONString) UnmarshalJSON(data []byte) error {
8080
}
8181
return nil
8282
}
83+
84+
func ConvertJSONNullString(value string) reflect.Value {
85+
v := NullJSONString{}
86+
if err := v.Scan(value); err != nil {
87+
return reflect.Value{}
88+
}
89+
90+
return reflect.ValueOf(v)
91+
}
92+
93+
func ConvertJSONNullBool(value string) reflect.Value {
94+
v := NullJSONBool{}
95+
96+
if value == "on" || value == "off" {
97+
return reflect.ValueOf(NullJSONBool{sql.NullBool{Bool: value == "on", Valid: true}})
98+
}
99+
if err := v.Scan(value); err != nil {
100+
return reflect.Value{}
101+
}
102+
return reflect.ValueOf(v)
103+
}

converter/sql.go

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,39 @@ func SQLNullFloat64(value string) reflect.Value {
4040

4141
return reflect.ValueOf(v)
4242
}
43+
44+
func ConvertSQLNullString(value string) reflect.Value {
45+
v := sql.NullString{}
46+
if err := v.Scan(value); err != nil {
47+
return reflect.Value{}
48+
}
49+
50+
return reflect.ValueOf(v)
51+
}
52+
53+
func ConvertSQLNullBool(value string) reflect.Value {
54+
v := sql.NullBool{}
55+
if err := v.Scan(value); err != nil {
56+
return reflect.Value{}
57+
}
58+
59+
return reflect.ValueOf(v)
60+
}
61+
62+
func ConvertSQLNullInt64(value string) reflect.Value {
63+
v := sql.NullInt64{}
64+
if err := v.Scan(value); err != nil {
65+
return reflect.Value{}
66+
}
67+
68+
return reflect.ValueOf(v)
69+
}
70+
71+
func ConvertSQLNullFloat64(value string) reflect.Value {
72+
v := sql.NullFloat64{}
73+
if err := v.Scan(value); err != nil {
74+
return reflect.Value{}
75+
}
76+
77+
return reflect.ValueOf(v)
78+
}

0 commit comments

Comments
 (0)