【问题标题】:NSDictionaries and NSArrays from JSON from complicated YouTube API来自复杂 YouTube API 的 JSON 的 NSDictionaries 和 NSArrays
【发布时间】:2010-12-05 13:57:14
【问题描述】:

我正在制作一个很棒的 iPhone 应用程序,它使用 JSON API 搜索 YouTube 视频。然而,谷歌很懒,所以他们只是将 ATOM 提要转换为 JSON。事情看起来像这样:

feed->entry[0]->author[0]->name->$t

这意味着从 NSArray 中获取信息很困难,因为我需要获取键的对象的数组的对象的数组的对象的键的值。

要检查结构是否正确,我可以选择两件事:

  1. 为每个我想检查 JSON 是否正确的项目使用大量代码。
  2. 将所有内容包装在 @try 块中。

我想选择第二个。问题是前段时间我读到这是不好的做法。是吗?如果是这样,是否有更短的方法来验证 NSArrays en NSDictionaries?我的应用程序可能永远不会崩溃,即使用户在运行时移除处理器也不会崩溃,因此根本不检查不是一种选择。

你能帮帮我吗?谢谢。

【问题讨论】:

    标签: iphone objective-c error-handling try-catch


    【解决方案1】:

    您是否尝试过 GData API?我将它用于我的应用程序 (http://itunes.apple.com/us/app/skystop/id392782307?mt=8) 的 Youtube Feed。它基本上会为您请求的任何内容生成一个 XML 文件,您可以将其直接转换为 plist 文件或 NSArray。

    【讨论】:

    • 实际上不是我的问题的答案,但它解决了问题。谢谢! :D
    • 没问题 :) 构建 GData API 需要一段时间。我建议删除文件夹中你知道不需要的东西(例如:谷歌文档、日历),然后构建一个静态库,这样你就不需要每次都构建。当然,除非您已经在使用预构建的库。
    【解决方案2】:

    我不确定我是否理解,API 本身在 JSON 而不是 ATOM 中工作,所以您需要深入每个项目? 如果是这样,那么您是对的,除了在网络上搜索帮助程序库外,您无能为力,甚至可能在 google 代码中创建以支持此 API。

    在任何情况下 #2 首先都是不好的做法,因为 try catch 通常比简单的布尔值或检查消耗更多的系统资源。 其次,一旦你进入 catch 块,你就会遇到问题,因为你所能做的就是向用户或你自己打印一个错误,如果你想继续解析和检查,你不能...... 最后但并非最不重要的一点(我敢肯定有一些我没有想到的原因),除了你可能会收到的消息之外,你永远无法确定它来自哪里......

    【讨论】:

    • 我不关心异常来自哪里,也不关心它发生了什么。只要应用程序不崩溃,就可以了。我正在循环播放大量视频以在地图上显示它们。我根本不信任 API。 :)
    【解决方案3】:

    您自己在解析 JSON 吗?如果是这样,我建议使用外部框架为您完成工作。我在自己的一些项目中使用了 Json-framework,它做得很好。

    http://code.google.com/p/json-framework/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-14
      • 2015-09-02
      • 2016-10-12
      • 2020-08-26
      • 1970-01-01
      相关资源
      最近更新 更多