如何在 Swift 中优雅地处理 JSON

前端之家收集整理的这篇文章主要介绍了如何在 Swift 中优雅地处理 JSON前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

因为Swift对于类型有非常严格的控制,它在处理JSON时是挺麻烦的,因为它天生就是隐式类型。SwiftyJSON是一个能帮助我们在Swift中使用JSON的开源类库。开始之前,让我们先看一下在Swift中处理JSON是多么痛苦。

在Swift中使用JSON的问题

以Twitter API为例。使用Swift,从tweet中取得一个用户的“name”值应该非常简单。下面就是我们要处理的JSON:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[
{
......
"text" : "justanothertest" ,
......
"user" :{
"name" "OAuthDancer" "favourites_count" :7,
"entities" :{
"url" :{
"urls" :[
{
"expanded_url" : null "http://bit.ly/oauth-dancer" "indices" :[
0,
26
],
"display_url" null
}
]
}
......
},
"in_reply_to_screen_name" ......]

在Swift中,你必须这样使用:

11
letjsonObject:AnyObject!=NSJSONSerialization.JSONObjectWithData(dataFromTwitter,options:NSJSONReadingOptions.MutableContainers,error: nil )
if letstatusesArray=jsonObjectas?NSArray{
letaStatus=statusesArray[ 0 ]as?NSDictionary{
letuser=aStatus[ "user" ]as?NSDictionary{
letuserName=user[ "name" ]as?NSDictionary{
//FinallyWeGotTheName
}
}
}
}

或者,你可以用另外的一个方法,但这不易于阅读:

4
letuserName=(((jsonObjectas?NSArray)?[ ]as?NSDictionary)?[ ]{
//What A disasterabove
}

猜你在找的Swift相关文章