无法将 json 数据反序列化为结构

我是一个新手,正在尝试编写一个简单的应用程序来从 greatschools.org 中提取一些学校数据。json 数据如下所示:


{

    “学校”:{

        “学校”: [

            {

                "gsId": 1,

                "name": "天主教学校",

                “类型”:“私人”,

                "等级范围": "PK-9",

                "招生": 39,

                “家长评分”:4,

                "city": "丹佛",

                "状态": "CO",

                "address": "111 Main St., \nDenver, CO 80100",

                "电话": "(720) 555-1212",

                "传真": "(720) 555-1212",

                "网站": "http://www.myschool.org",

                "ncesId": "1234567",

                “纬度”:30.519446,

                “lon”:-105.71314,

                "overviewLink": "http://www.greatschools.org/colorado/Denver/1-Catholic-School/?s_cid=gsapi",

                "ratingsLink": "http://www.greatschools.org/school/rating.page?state=CO&id=1&s_cid=gsapi",

                "reviewsLink": "http://www.greatschools.org/school/parentReviews.page?state=CO&id=1&s_cid=gsapi",

                "schoolStatsLink": "http://www.greatschools.org/cgi-bin/CO/otherprivate/1"

            } ...

我的结构如下所示:


类型学校结构结构{

    GsId 整数

    名称字符串

    学校类型字符串

    等级范围字符串

    招生人数

    ParentRating int

    城市字符串

    状态字符串

    地址串

    电话串

    传真字符串

    网站字符串

    NcesId 字符串

    纬度 float64

    Lon float64

    概览链接字符串

    评级链接字符串

    评论链接字符串

    SchoolStatsLink 字符串

}


类型学校结构结构{

    学校 []学校结构

}

当我运行我的代码时,我得到“json: cannot unmarshal object into Go value of type []main.SchoolStruct”


我正在使用gopencils库来提出我的请求,并且已经通过非常简单的请求成功地使用了它。你明白我可能做错了什么吗?


白猪掌柜的
浏览 285回答 1
1回答

尚方宝剑之说

有几个问题。对于初学者,您正在尝试对学校进行解码,但数据是学校,它具有学校的成员(数组)。另一个问题是您的名称不匹配。 GsId!=gsid除非您使用结构标记告诉 Go。尝试解码为 SchoolResponseData:type SchoolResponseData struct {    Schools struct {        School []struct {            Address         string  `json:"address"`            City            string  `json:"city"`            Enrollment      float64 `json:"enrollment"`            Fax             string  `json:"fax"`            GradeRange      string  `json:"gradeRange"`            GsId            float64 `json:"gsId"`            Lat             float64 `json:"lat"`            Lon             float64 `json:"lon"`            Name            string  `json:"name"`            NcesId          string  `json:"ncesId"`            OverviewLink    string  `json:"overviewLink"`            ParentRating    float64 `json:"parentRating"`            Phone           string  `json:"phone"`            RatingsLink     string  `json:"ratingsLink"`            ReviewsLink     string  `json:"reviewsLink"`            SchoolStatsLink string  `json:"schoolStatsLink"`            State           string  `json:"state"`            Type            string  `json:"type"`            Website         string  `json:"website"`        } `json:"school"`    } `json:"schools"`}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go