我在Objective-C新。 我想打一个HTTPRequest一个API。 这工作,我得到我在一个NSData物体响应。 这反应是JSON响应。 如何可以解析我的反应来获得与主要的字典:值格式?
我用这个代码来获取数据:
data = [NSURLConnection sendSynchronousRequest: req
returningResponse: nil
error: nil];
谢谢
使用NSJSONSerialization (的iOS5 +)转换成JSON字符串Cocoa对象( NSDictionary
你的情况),反之亦然。
PS:如果你需要5.0之前还支持iOS的版本,分别在NSJSONSerialization
不可用,也有第三方库在那里,像JSONKit
例如。 然后,您可以可以一直使用JSONKit
无论在iOS4的和iOS5的,或在运行时您可以测试NSJSONSerialization
可用性和如果有使用它(但退回到JSONKit
如果没有)。
(有关跨SDK开发的更多细节,比如制造和应用与iOS4的兼容,但能够使用iOS5的类可用时,看到SDK兼容性指南 )
顺便说一句,你应该(必须)避免使用同步的URL请求。 这将阻止您的线程,直到它接收来自网络的响应。 如果你执行它的主线程上,你的整个用户界面将被冻结,直到收到响应,它可以在移动环境中几秒钟(你并不总是有最好的网络覆盖)。
身高:
- 使用NSURLConnection的,它使用委托(见API 的URL加载系统编程指南了解详细信息),
- 或使用新引入
sendAsynchronousRequest:queue:completionHandler:
方法(iOS5的+),将在后台执行请求的NSOperation, - 或者使用一些第三方框架,将与请求你的工作更容易(我建议AFNetworking的是,这也很适合于Web服务通信,并自动转换成JSON对象的反应,使用块异步处理响应,使您的代码更容易编写和理解,以及更多)