获取JSON这是NSData的(Get the json which is in NSData)

2019-09-22 08:33发布

我在Objective-C新。 我想打一个HTTPRequest一个API。 这工作,我得到我在一个NSData物体响应。 这反应是JSON响应。 如何可以解析我的反应来获得与主要的字典:值格式?

我用这个代码来获取数据:

  data = [NSURLConnection sendSynchronousRequest: req
                             returningResponse: nil
                                         error: nil];

谢谢

Answer 1:

使用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对象的反应,使用块异步处理响应,使您的代码更容易编写和理解,以及更多)


文章来源: Get the json which is in NSData