2016-07-31 23 views
-1

Wenn zu json.Unmarshal einig JSON-Code von einer Website in ein struct ich versuche, erstellt, erhalte ich folgende Fehlermeldung:Golang - nicht Abstellungs Zahl in Go-Wert vom Typ string

cannot unmarshal number into Go value of type string

Hier ist mein Code: https://play.golang.org/p/-5nphV9vPw

+0

Es gibt einige json Feld, das eine Zahl ist, und Sie versuchen, es zu einem Sprung zu entpacken 'string' Typ. Haben Sie einen Beispiel-Json-Datenwert? – abhink

+0

keine Frage. –

Antwort

-1

funktioniert dies für mich (korrigierte 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) 
} 
+0

keine Antwort auf irgendeine Frage. –