在解析过程中,反向解析不包含其中的部分参数也不会报错,这是需要注意的一点
× 31 func main() { // E: main redeclared in this block
32 ¦ type AA struct {
33 ¦ ¦ A1 string `json:"aa"`
34 ¦ ¦ A2 int `json:"bb"`
35 ¦ }
36
37 ¦ mm := AA{
38 ¦ ¦ A1: "hello",
39 ¦ ¦ A2: 11,
40 ¦ }
41
42 ¦ value , err := json.Marshal(mm)
43 ¦ if err != nil {
44 ¦ ¦ fmt.Println("data err!")
45 ¦ }
46
47 ¦ type BB struct{
48 ¦ ¦ A1 string `json:"aa"`
49 ¦ ¦ A2 int `json:"bb"`
50 ¦ ¦ A3 string `json:"cc"` //这里比待解析的数据中多了一个参数,不存在的string为nil, int类型的为0
51 ¦ }
52
53 ¦ bb := BB{}
54
55 ¦ err1 := json.Unmarshal(value, &bb)
56 ¦ if err1 != nil {
57 ¦ ¦ fmt.Println("json un err")
58 ¦ }
59
60 ¦ fmt.Printf("A1", bb.A1)
61 ¦ fmt.Printf("A2", bb.A2)
62 }
63