嗯,我真的是新Swift,而且我已经使用swiftyJSON轻松解析来自API的JSON数据。
我的数据响应如下:
[
{
"fname": < String value>
"mname": < String value>
"lname": < String value>
"weights": [
{
"date": <String value>,
"weight": <String value>
},
{
"date": <String value>,
"weight": <String value>
}
]
对于我的swiftyJSON解析方式,这是我的代码
let swiftyJSON = JSON(data: data!)
for item in swiftyJSON.arrayValue{
self.firstName = item["fname"].stringValue
self.middleName = item["mname"].stringValue
self.lastName = item["lname"].stringValue
//JSON Array "weights" code snippet below
}
对于名称,我已将其解析为字符串,但使用"weights"
。我不知道该怎么做。我已经尝试过使用它了:
for key in item["weights"]["weight"].arrayValue{
self.allWeights.append(key.stringValue)
}
它不起作用。有人可以帮我弄这个吗?非常感谢。
答案 0 :(得分:4)
weights
包含一系列词典
...
if let weights = item["weights"].array {
for weightItem in weights {
let date = weightItem["date"].stringValue
let weight = weightItem["weight"].stringValue
print(date, weight)
}
}
答案 1 :(得分:0)
这可能是一个快速的答案。我们在这里所做的是使用map遍历json数组,并为数组中的每个项目返回一个字典对象。在返回存储在weights变量中的整个数组之前,map函数当然会创建自己的数组并将每个字典对象附加到该数组。可能大脑快要炸了,所以如果我做得不对,请告诉我。
let swiftyJSON = JSON(data: data!)
let weights = swiftyJSON["weights"].arrayValue.map {["date": $0["date"].stringValue, "weights": $0["weights"].stringValue]}