我正在使用这个JSON 解析器从我从 API 获得的 JSON 响应中提取数据。它返回一个包含数据的字节数组,当将字节数组转换为字符串并打印它时,我得到以下输出: [{"Name": "Vikings", "Type": "show"}, {"Name": "Spartacus: Gods Of The Arena", "Type": "show"}, {"Name": "True Detective", "Type": "show"}, {"Name": "The Borgias", "Type": "show"}, {"Name": "Se7en", "Type": "movie"}]由于这是一个常规字符串,我无法操纵数据来提取我需要的任何内容。理想情况下,我想要这样的数组: shows := ["Vikings", "Spartacus: Gods Of The Arena"...] movies := ["Se7en", "other data", ...]我想对这些数组做的是根据他/她要求的类型(即:节目、电影等)给用户标题。所以基本上我正在寻找的是一种将字符串转换为我可以轻松操作(并且可能过滤)的东西的方法。如果这似乎是一种奇怪的方式,我表示歉意,但我想不出任何其他方式。我觉得 Go 的语法和做事方式与另一种语言(如 Javascript)相比,我可以很容易地在一两行内完成这项工作。
1 回答
呼如林
TA贡献1798条经验 获得超3个赞
使用标准encoding/json包将数据解组为与数据形状匹配的值:
var items []struct { // Use slice for JSON array, struct for JSON object
Name string
Type string
}
if err := json.Unmarshal(d, &items); err != nil {
log.Fatal(err)
}
循环遍历未编组的项目以查找节目和电影:
var shows, movies []string
for _, item := range items {
switch item.Type {
case "movie":
movies = append(movies, item.Name)
case "show":
shows = append(shows, item.Name)
}
}
- 1 回答
- 0 关注
- 127 浏览
添加回答
举报
0/150
提交
取消