go语言解析json库

json库:
xiezj@u197-254:~/xzjtest$ vi t2.json 


{
        "aaa":[
                {
                        "name": "Platypus",
                        "Order": "Monotremata"
                },
                {


                        "Name": "Quoll",
                        "Order": "Dasyuromorphia"
                }
        ]
}


在json库的中键名不需要区分大小写

---------------------------------------
在go中的结构成员必须要首字母大写


成员名字同json库中的健名,这里不区分大小写
        type Animal struct {
                Name  string
                Order string
        }
        type abc struct {
                AAa []Animal 
        }

如果在go中定义的成员名字同json库中的不一样,那么需要打标签
        type Animal struct {
                Name  string
                Order string
        }
        type abc struct {
                Ahh []Animal `json:"aaa"`
        }

go测试代码:
package main


import (
        "encoding/json"
        "fmt"
        "io/ioutil"
)


func main() {


        type Animal struct {
                Name  string
                Order string
        }
        type abc struct {
                Aaa []Animal //`json:"Aaa"`
        }
        file, _ := ioutil.ReadFile("t2.json")
        var animals abc
        err := json.Unmarshal(file, &animals)
        if err != nil {
                fmt.Println("error:", err)
        }
        //fmt.Println(animals.Aaac[0].Name)
        fmt.Println(animals.Aaa[0].Name)
}

有什么区别,报什么错,大家自己动手试试更清楚,印象更深刻哈。。

你可能感兴趣的:(GOlang)