-
Notifications
You must be signed in to change notification settings - Fork 0
/
json.go
54 lines (40 loc) · 1.03 KB
/
json.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
package common
import (
"bytes"
"encoding/json"
)
//ReadJSON 将json格式的byte内容转换成对象
func ReadJSON(obj interface{}, data []byte) error {
if data == nil {
return nil
}
if err := json.Unmarshal(data, &obj); err != nil {
return NewError(ErrCodeInternal, err.Error())
}
if obj == nil {
return NewError(ErrCodeInternal, "config empty")
}
return nil
}
//JSONObjectConvert 将一个对象转换成序列化后的另一个对象
func JSONObjectConvert(obj1 interface{}, obj2 interface{}) error {
data, err := json.Marshal(obj1)
if err != nil {
return NewError(ErrCodeInternal, err.Error())
}
if err := json.Unmarshal(data, obj2); err != nil {
return NewError(ErrCodeInternal, err.Error())
}
return nil
}
//PrettyJSON 打印缩进后的json内容
func PrettyJSON(b []byte) ([]byte, error) {
var out bytes.Buffer
err := json.Indent(&out, b, "", " ")
return out.Bytes(), err
}
func PrettyObject(obj interface{}) []byte {
data, _ := json.Marshal(obj)
result, _ := PrettyJSON(data)
return result
}