doujie1908 2016-07-31 04:42
浏览 147
已采纳

Golang-无法将数字解组为字符串类型的Go值

When trying to json.Unmarshal some JSON code from a website into a struct I created, I receive the following error:

cannot unmarshal number into Go value of type string

Here is my code: https://play.golang.org/p/-5nphV9vPw

  • 写回答

2条回答 默认 最新

  • douka19950505 2016-07-31 05:20
    关注

    this works for me (corrected version):

    package main
    
    import (
        "encoding/json"
        "fmt"
        "log"
    )
    
    type movie struct {
        Adult         bool
        Backdrop_path string
        Budget        int
        Genres        []struct {
            Id   int // string
            Name string
        }
        Homepage             string
        Id                   int
        Imdb_id              string
        Original_language    string
        Original_title       string
        Overview             string
        Popularity           float64 //    string
        Poster_path          string
        Production_companies []struct {
            Name string
            Id   int
        }
        Production_countries []struct {
            Name string
        }
        Release_date     string
        Revenue          int
        Runtime          int
        Spoken_languages []struct {
            Name string
        }
        Status       string
        Tagline      string
        Title        string
        Video        bool
        Vote_average float64
        Vote_count   int
        Embedurl     string
    }
    
    func main() {
        var movieData movie
        str := `
        {
        "adult":false,
        "backdrop_path":"/mWuHbFc7qVmVcpybx3ezhXLj5VO.jpg",
        "belongs_to_collection":null,
        "budget":25000000,
        "genres":
            [
            {
                "id":35,
                "name":"Comedy"
            },
            {
                "id":37,
                "name":"Western"
            }
            ],
        "homepage":"",
        "id":8388,
        "imdb_id":"tt0092086",
        "original_language":"en",
        "original_title":"¡Three Amigos!",
        "overview":"Three unemployed actors accept an invitation to a Mexican village to replay their bandit fighter roles, unaware that it is the real thing.",
        "popularity":0.799492,
        "poster_path":"/ehCzedovkiM8CnDeuSSHlRbdfxI.jpg",
        "production_companies":
        [{
            "name":"L.A. Films",
            "id":960
         },
         {
            "name":"Home Box Office (HBO)",
            "id":3268
         }],
        "production_countries":
        [{
            "iso_3166_1":"US",
            "name":"United States of America"
        }],
        "release_date":"1986-12-12",
        "revenue":0,
        "runtime":102,
        "spoken_languages":
        [{
            "iso_639_1":"en",
            "name":"English"
        },{
            "iso_639_1":"de",
            "name":"Deutsch"
        },{
            "iso_639_1":"es",
            "name":"Español"
        }],
        "status":"Released",
        "tagline":"They're Down On Their Luck And Up To Their Necks In Senoritas, Margaritas, Banditos And Bullets!",
        "title":"Three Amigos",
        "video":false,
        "vote_average":6.2,
        "vote_count":116
        }`
        err := json.Unmarshal([]byte(str), &movieData)
        if err != nil {
            log.Fatal(err)
        }
        fmt.Println(movieData)
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?