TouchJSON是OC转换JSON的一个第三方类库,使用简单。在GitHub上可以轻松获取:TouchJSON
以下是简单的事例演示从douban movie请求JSON数据并转为字典对象后对控件赋值。
#import "ViewController.h"
#import "CJSONSerializer.h"
#import "CJSONDeserializer.h"
#import "NSDictionary_JSONExtensions.h"
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 28 29 30 31 32 33 34 35 36 37 38 | < br >@ interface ViewController () @ property ( weak , nonatomic ) IBOutlet UITextView * textView ; @ property ( nonatomic , strong ) NSMutableDictionary * dic ; @ property ( nonatomic , strong ) NSString * text ; @ end @ implementation ViewController - ( void ) viewDidLoad { [ super viewDidLoad ]; // Do any additional setup after loading the view, typically from a nib. } - ( IBAction ) didClickTouchJSONButton :( id ) sender { //GCD异步 dispatch_queue_t q1 = dispatch_get_global_queue ( DISPATCH_QUEUE_PRIORITY_DEFAULT , 0 ); dispatch_async ( q1 , ^{ NSURL * url = [ NSURL URLWithString :@ "https://api.douban.com/v2/movie/subject/22265299" ]; NSString * jsonString = [ NSString stringWithContentsOfURL : url encoding : NSUTF8StringEncoding error : nil ];< br >< br > //直接转换,import CJSONDeserializer.h //self.dic = [[CJSONDeserializer deserializer] deserialize:[jsonString dataUsingEncoding:NSUTF8StringEncoding] error:nil]; //如果使用下面扩展了NSDictionary的方法,请import NSDictionary_JSONExtensions.h self . dic = [ NSDictionary dictionaryWithJSONString : jsonString error : nil ]; NSString * title = [ self . dic objectForKey :@ "original_title" ]; NSMutableArray * genresArray = [ self . dic objectForKey :@ "genres" ]; NSString * genres = [ NSString stringWithFormat :@ "%@/%@" ,[ genresArray objectAtIndex : 0 ],[ genresArray objectAtIndex : 1 ]]; NSString * summary = [ self . dic objectForKey :@ "summary" ]; self . text = [ NSString stringWithFormat :@ "电影名称:%@\n体裁:%@\n剧情介绍:%@" , title , genres , summary ]; //更新UI操作需要在主线程 dispatch_async ( dispatch_get_main_queue (), ^{ self . textView . text = self . text ; }); }); } |
分类:
Swift
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
2015-06-10 手动开启ARC
2012-06-10 SAP应用界面开发:1)SELECT-OPTIONS对象