我在Swift工作并有一个问题。
我已经能够成功地从API中获取数据作为数组(返回的JSON以[]开头,因此是一个数组)但是一个特定的API我想使用返回嵌套对象(JSON)从{}开始而不是[],所以它不是一个数组结构。这是数据。正如你所看到的,顶层是UserRestoreData,里面有两个二级组件:FavoriteMeals和FavoriteDrinks。他们自己有任意数量的儿童代表餐饮或饮料,而这些儿童又有任何数量的成分。
{"UserRestoreData":[
{"FavoriteMeals":
[
{"FoodID":"1","Title":"Veal Marsala",
"Ingredients":{"IngredientID":"1","Name":"Veal"}
}
]
},
{"FavoriteDrinks":
[
{"DrinkID":"1","Title":"Mint Mojito"}
]
}
]
}
因此,当我运行此代码时,它会起作用(不会崩溃)
var data = NSData(contentsOfURL: NSURL(string: "MYURL"))
let restoreData = NSJSONSerialization.JSONObjectWithData(data, options: .MutableContainers, error: nil) as NSObject
如果我要println restoreData,我会完美地回复所有内容。 但是我从这里做什么呢?就像我如何实际与这个NSObject交互一样?有没有办法说'#34;好吧,现在让我成为这个对象最喜欢的饮酒孩子"?我很难在线查找信息(大多数情况似乎都与NSArray有关,我理解并且已成功完成)。
有没有办法将其反序列化为对象?我会以某种方式投射吗?我是否将其纳入NSArray并迭代响应?我该怎么办?对不起,如果这是一个模糊的问题,只是好奇我怎么能以某种方式迭代它或访问它的一部分。
非常感谢!
答案 0 :(得分:4)
您可以as NSObject
代替as NSDictionary
,然后像普通NSDictionary