当尝试将json.Unmarshal
某个JSON代码从网站转换为我创建的结构时,我收到以下错误:
无法将数字解组为字符串
的Go值
答案 0 :(得分:0)
结构定义中存在多个错误。这是固定版本。
答案 1 :(得分:-1)
这对我有用(更正后的版本):
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)
}