如何将字符串转换为 JSON 并将数据保存在数组中?

我正在使用这个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)相比,我可以很容易地在一两行内完成这项工作。


饮歌长啸
浏览 130回答 1
1回答

呼如林

使用标准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 []stringfor _, item := range items {    switch item.Type {    case "movie":        movies = append(movies, item.Name)    case "show":        shows = append(shows, item.Name)    }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go