Spotify Returns NSDictionary 无效
Spotify Returns Invalid NSDictionary
我正在调用 Spotify API 方法来检索用户保存的曲目。在解析 return 数据时,我调用
let jsonObject = try NSJSONSerialization.JSONObjectWithData(dataFromNetwork, options: []) as! NSDictionary
当我打印出结果时,我得到:
{
href = "https://api.spotify.com/v1/me/tracks?offset=0&limit=20";
items = (
{
"added_at" = "2016-04-17T18:35:07Z";
track = {
album = {
"album_type" = album;
"available_markets" =
....
}
有些键不是字符串。因此,当我尝试在容器中导航时,出现 returns 错误。
我首先导航到曲目列表:
let tracks = jsonObject["items"] as! [NSDictionary]
此代码不会产生错误。但是,当我遍历数组时,我尝试访问轨道的 "name" 键:
let title = track["name"] as! String
此代码使程序崩溃,当我查看 JSON:
name = <redacted>
键和值都没有双引号。
这条线有点太绝对了:
let title = track["name"] as! String
将其更改为“if let
”语句:
if let title = track["name"] as? String
{
// do something if it's a valid title
我正在调用 Spotify API 方法来检索用户保存的曲目。在解析 return 数据时,我调用
let jsonObject = try NSJSONSerialization.JSONObjectWithData(dataFromNetwork, options: []) as! NSDictionary
当我打印出结果时,我得到:
{
href = "https://api.spotify.com/v1/me/tracks?offset=0&limit=20";
items = (
{
"added_at" = "2016-04-17T18:35:07Z";
track = {
album = {
"album_type" = album;
"available_markets" =
....
}
有些键不是字符串。因此,当我尝试在容器中导航时,出现 returns 错误。
我首先导航到曲目列表:
let tracks = jsonObject["items"] as! [NSDictionary]
此代码不会产生错误。但是,当我遍历数组时,我尝试访问轨道的 "name" 键:
let title = track["name"] as! String
此代码使程序崩溃,当我查看 JSON:
name = <redacted>
键和值都没有双引号。
这条线有点太绝对了:
let title = track["name"] as! String
将其更改为“if let
”语句:
if let title = track["name"] as? String
{
// do something if it's a valid title