Go中json的解析和反解析
在解析过程中,反向解析不包含其中的部分参数也不会报错,这是需要注意的一点
× 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