【发布时间】:2019-04-11 17:04:11
【问题描述】:
所以我需要解码一个 json 字符串以获得 key ID 的值,但我无法找到一种方法来仅提取一个键的值,所以我创建了整个 json 字符串的结构,以便我可以 unmarshal 它来提取信息,但我认为我的结构存在一些问题,因为我没有得到任何输出
package main
import (
"fmt"
"encoding/json"
)
type season struct{
Data []seasoninfo `json:"seasoninfo"`
}
type seasoninfo struct{
Aliases []string
Banner string
FirstAired string
Id int
Network string
Overview string
SeriesName string
Slug string
Status string
}
func main() {
s := `{"data":[{"aliases":[],"banner":"graphical/81189-g21.jpg","firstAired":"2008-01-20","id":81189,"network":"AMC","overview":"Walter White, a struggling high school chemistry teacher, is diagnosed with advanced lung cancer. He turns to a life of crime, producing and selling methamphetamine accompanied by a former student, Jesse Pinkman, with the aim of securing his family's financial future before he dies.","seriesName":"Breaking Bad","slug":"breaking-bad","status":"Ended"},{"aliases":[],"banner":"","firstAired":"","id":356427,"network":"AMC","overview":null,"seriesName":"Breaking Bad: Original Minisodes","slug":"breaking-bad-original-minisodes","status":"Ended"},{"aliases":["Breaking Bad (ES)"],"banner":"graphical/273859-g.jpg","firstAired":"2014-06-08","id":273859,"network":"Univision","overview":"“Metastasis” is the story of a struggling high school chemistry teacher who is diagnosed with inoperable lung cancer. He turns to a life of crime, producing and selling meth with a former student in order to secure his family’s financial future before he passes away.","seriesName":"Metastasis","slug":"metastasis","status":"Ended"}]}`
var series season
err:=json.Unmarshal([]byte(s),&series)
if err==nil{
fmt.Println(series)
} else{
fmt.Println("wrong")
}
}
输出是 {[]}
https://play.golang.org/p/5jYSp4cMCok
谢谢
【问题讨论】:
-
json:"seasoninfo"错误。 -
要么更改为 ``json:"data"`,要么将传入的 JSON 更改为
{"seasoninfo":[{"aliases":[],"banne,以便匹配您期望的密钥。 play.golang.org/p/mU5KlcBDsUk 或 play.golang.org/p/CeeEc48IyvZ 至少 -
请您提及一个带有修改的 go playground 链接....我有点新手
-
非常感谢.....它成功了
-
@PRAKHARKAUSHIK 我发布了一个答案。希望对您有所帮助!
标签: go