gpt4 book ai didi

iphone - 获取 NSData 中的 json

转载 作者:行者123 更新时间:2023-12-03 20:42:06 25 4
gpt4 key购买 nike

我是 Objective-c 新手。我想向 API 发出 HTTPRequest。这有效,我在 NSData 对象中得到了响应。这个回应是一个 json 响应。我如何解析我的回复以获得字典带键:值格式?

我使用此代码来获取数据:

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

谢谢

最佳答案

使用NSJSONSerialization (iOS5+) 将 JSON 字符串转换为 Cocoa 对象(在您的情况下是 NSDictionary),反之亦然。

PS:如果您还需要支持 5.0 之前的 iOS 版本,即 NSJSONSerialization 不可用的地方,可以使用第三方库,例如 JSONKit例如。然后,您可以始终在 iOS4 和 iOS5 上使用 JSONKit,或者您可以在运行时测试 NSJSONSerialization 可用性并在可用时使用它(但回退到 JSONKit 如果没有)。

(有关跨 SDK 开发的更多详细信息,例如使应用程序与 iOS4 兼容但能够使用可用的 iOS5 类,请参阅 SDK Compatibility Guide )

<小时/>

顺便说一句,您应该(必须)避免使用同步 URL 请求。这将阻塞您的线程,直到它收到来自网络的响应。如果您在主线程上执行它,您的整个 UI 将被卡住,直到您收到响应,这在移动环境中可能需要几秒钟(您并不总是拥有最佳的网络覆盖范围)。

首选:

  • 使用使用委托(delegate)的 NSURLConnection API(有关详细信息,请参阅 the URL Loading System Programming Guide),
  • 或使用新引入的 sendAsynchronousRequest:queue:completionHandler: 方法 (iOS5+),该方法将在后台 NSOperation 中执行请求,
  • 或者使用一些第三方框架,这将使您处理请求变得更容易(我建议 AFNetworking 为此,这也非常适合与 WebServices 通信并自动将响应转换为 JSON 对象,使用 block 来处理异步响应并使您的代码更易于编写和理解等等)

关于iphone - 获取 NSData 中的 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12396570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com