Skip to content

Commit 1b1df8e

Browse files
committed
json
1 parent e691ceb commit 1b1df8e

File tree

3 files changed

+89
-33
lines changed

3 files changed

+89
-33
lines changed

pkg/jsonx/BytesObj.go

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package jsonx
2+
3+
import "encoding/json"
4+
5+
func BytesToObj[T any](s []byte) T {
6+
var v T
7+
err := json.Unmarshal(s, &v)
8+
if err != nil {
9+
panic(err)
10+
}
11+
return v
12+
}
13+
14+
func BytesToObjE[T any](s []byte) (T, error) {
15+
var v T
16+
err := json.Unmarshal(s, &v)
17+
return v, err
18+
}
19+
20+
func BytesToObjPtr[T any](s []byte) *T {
21+
var v T
22+
err := json.Unmarshal(s, &v)
23+
if err != nil || v == nil {
24+
return nil
25+
}
26+
return &v
27+
}
28+
29+
func BytesToObjPtrE[T any](s []byte) (*T, error) {
30+
var v T
31+
err := json.Unmarshal(s, &v)
32+
if err != nil || v == nil {
33+
return nil, err
34+
}
35+
return &v, nil
36+
}
37+
38+
func BytesToMap(s []byte) map[string]any {
39+
var v map[string]any
40+
err := json.Unmarshal(s, &v)
41+
if err != nil {
42+
panic(err)
43+
}
44+
return v
45+
}
46+
47+
func BytesToMapE(s []byte) (map[string]any, error) {
48+
var v map[string]any
49+
err := json.Unmarshal(s, &v)
50+
return v, err
51+
}
52+
53+
func BytesToArr(s []byte) []any {
54+
var v []any
55+
err := json.Unmarshal(s, &v)
56+
if err != nil {
57+
panic(err)
58+
}
59+
return v
60+
}

pkg/jsonx/obj.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package jsonx
2+
3+
func ToObj[T any](s string) T {
4+
return BytesToObj[T]([]byte(s))
5+
}
6+
7+
func ToObjE[T any](s string) (T, error) {
8+
return BytesToObjE[T]([]byte(s))
9+
}
10+
11+
func ToObjPtr[T any](s string) *T {
12+
return BytesToObjPtr[T]([]byte(s))
13+
}
14+
15+
func ToObjPtrE[T any](s string) (*T, error) {
16+
return BytesToObjPtrE[T]([]byte(s))
17+
}
18+
19+
func ToMap(s string) map[string]any {
20+
return BytesToMap([]byte(s))
21+
}
22+
23+
func ToMapE(s string) (map[string]any, error) {
24+
return BytesToMapE([]byte(s))
25+
}
26+
27+
func ToArr(s string) []any {
28+
return BytesToArr([]byte(s))
29+
}

pkg/jsonx/ser.go

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -35,36 +35,3 @@ func ToStringIE(o any) (string, error) {
3535
}
3636
return string(bs), nil
3737
}
38-
39-
func ToObj[T any](s string) T {
40-
var v T
41-
err := json.Unmarshal([]byte(s), &v)
42-
if err != nil {
43-
panic(err)
44-
}
45-
return v
46-
}
47-
48-
func ToObjE[T any](s string) (T, error) {
49-
var v T
50-
err := json.Unmarshal([]byte(s), &v)
51-
return v, err
52-
}
53-
54-
func ToObjPtr[T any](s string) *T {
55-
var v T
56-
err := json.Unmarshal([]byte(s), &v)
57-
if err != nil || v == nil {
58-
return nil
59-
}
60-
return &v
61-
}
62-
63-
func ToObjPtrE[T any](s string) (*T, error) {
64-
var v T
65-
err := json.Unmarshal([]byte(s), &v)
66-
if err != nil || v == nil {
67-
return nil, err
68-
}
69-
return &v, nil
70-
}

0 commit comments

Comments
 (0)