go - 如何在 Go 语言中解组 Json 字符串以仅获取一个键的值
问题描述
所以我需要解码一个 json 字符串来获取键ID的值,但是我无法找到一种方法来只提取一个键的值,所以我创建了一个整个 json 字符串的结构,以便我可以解组它以提取信息但是我认为我的结构有问题,因为我没有得到任何输出
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
谢谢
解决方案
问题是您当前正在尝试将 struct fieldData
与 JSON property key匹配seasoninfo
。但是,您的示例 JSON 输入没有seasoninfo
作为外部属性,而是data
作为外部属性。要么更改json:"seasoninfo"
为json:"data"
:
type season struct{
Data []seasoninfo `json:"data"`
}
这是一个实际的例子。
或者更简单,您可以考虑简单地删除该json:"data"
部分,如struct 字段data
的 JSON 匹配项:Data
这是一个实际的例子:
type season struct{
Data []seasoninfo
}
希望这会有所帮助!
推荐阅读
- javascript - 我应该遵循 Visual Studio Code 建议在 javascript 中转换为命名函数吗?
- python - xpath - IndexError:选择带有路径的元素后列表索引超出范围
- java - ArrayList#isEmpty() 方法抛出 NullPointerException
- python - 无法使用 xPath 定位元素
- python - 如何从原始图像文件中获取每像素 10 位?
- c# - 界面中的列表
- regex - 在不复制表达式的情况下,强制正则表达式用引号括起来或根本不用引号
- r - 当某些观察值少于 n 行时,使用 dplyr 在数据帧中对每组随机采样 n 行
- python - OpenCV中PIL库函数ImageEnhance.Contrast(image).enhance(param)的等价物是什么?
- c# - 无法将列表附加到现有文件。C#