为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
白猪掌柜的 2021-09-20 10:43:49
我是一个新手,正在尝试编写一个简单的应用程序来从 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库来提出我的请求,并且已经通过非常简单的请求成功地使用了它。你明白我可能做错了什么吗?
查看完整描述

1 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

有几个问题。对于初学者,您正在尝试对学校进行解码,但数据是学校,它具有学校的成员(数组)。


另一个问题是您的名称不匹配。 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"`

}


查看完整回答
反对 回复 2021-09-20
  • 1 回答
  • 0 关注
  • 283 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信