加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何在 Swift 中优雅地处理 JSON

发布时间:2020-12-14 01:50:49 所属栏目:百科 来源:网络整理
导读:因为Swift对于类型有非常严格的控制,它在处理JSON时是挺麻烦的,因为它天生就是隐式类型。SwiftyJSON是一个能帮助我们在Swift中使用JSON的开源类库。开始之前,让我们先看一下在Swift中处理JSON是多么痛苦。 在Swift中使用JSON的问题 以Twitter API为例。使

因为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
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

相关内容
推荐文章
站长推荐
热点阅读