![](/img/trans.png)
[英]golang : Unmarshal: json: cannot unmarshal array into Go value of type main.MonitorServerInfo
[英]Golang - Cannot unmarshal number into Go value of type string
當嘗試json.Unmarshal
一些 JSON 代碼從網站到我創建的結構時,我收到以下錯誤:
無法將數字解組為字符串類型的 Go 值
結構定義中存在多個錯誤。 這里是固定版本。
基本上,結構存在一些問題; 人們可能想使用JSON-to-Go
有一個特別的問題,我遇到的是這樣的:
json:無法將數字解組為 Go 字符串類型的結構字段
id
這意味着 Go 無法將 JSON 數字(例如"id": 35
)編組為 Go 字符串屬性
id
變成一個字符串"id": "35"
; 或者id
類型更改為 int 類型type movie struct {
Genres []struct {
Id int
Name string
}
}
這對我有用(更正版):
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)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.