/
json.go
77 lines (71 loc) · 1.38 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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package main
import (
"encoding/json"
"fmt"
"log"
)
type jsonSerilize struct {
//使用tag设置别名,反射机制
Name string `json:"mingzi"`
Age int
Birthday string
Skill string
}
//序列化结构体
func testStruct() {
m := jsonSerilize{
Name: "dasd",
Age: 18,
Birthday: "2001-02-03",
Skill: "coding",
}
jsonText, error := json.Marshal(&m)
if error != nil {
log.Fatal(error)
}
fmt.Println(string(jsonText))
}
//序列化map
func testMap() {
var a map[string]interface{}
a = make(map[string]interface{})
a["name"] = "leslie"
a["age"] = "17"
a["birthday"] = "2019-02-27"
a["skill"] = "code"
jsonString, error := json.Marshal(&a)
if error != nil {
log.Fatal(error)
}
fmt.Println(string(jsonString))
}
//序列化切片
func testSlice() {
var b []map[string]interface{}
var a map[string]interface{}
a = make(map[string]interface{})
a["name"] = "leslie"
a["age"] = "17"
a["birthday"] = "2019-02-27"
a["skill"] = "code"
b = append(b, a)
var c map[string]interface{}
c = make(map[string]interface{})
c["name"] = "Jim"
c["age"] = "27"
c["birthday"] = "2010-02-27"
c["skill"] = "eat"
b = append(b, c)
jsonString, error := json.Marshal(&b)
if error != nil {
log.Fatal(error)
}
fmt.Println(string(jsonString))
}
//主函数
func main() {
//将结构体,map,切片进行序列化
//testStruct()
//testMap()
//testSlice()
}