0

我们在我们的应用程序中解析了很多 JSON - 如果没有后端,这将是一个非常无用的应用程序。我知道这也适用于许多其他应用程序。为了解析 JSON,我们需要一个键列表来获取数据。我想知道管理这些路径/字符串文字被认为是“最佳实践”或至少是“该死的好实践”。是否有工具可以帮助管理此类密钥并减少重复?

  1. 对它们进行硬编码绝对不是一种选择,但坦率地说,如果我们的后端程序员更改密钥,从概念上讲,在 XCode(或您使用的任何 IDE)中进行简单的查找/替换就足够了。它既丑陋又不干净,我只是觉得在我的代码中到处都是字符串文字很脏。

  2. 我现在正在做的是将它们全部放入我的 PCH 文件中,这意味着我最终得到:

    #define kBookmarksSearchResultsIDFieldName @"business.id"

    #define kBookmarksSearchResultsNameFieldName @"business.name"

    #define kBookmarksSearchResultsThumbnailURLFieldName @"business.display_image.images.small_mobile.source"

    #define kBookmarksBusinessCategoryArrayFieldName @"business.categories"

    虽然现在我的 PCH 文件中有大约 1000 行这些东西,但这确实很快变得笨拙。

  3. 我正在考虑的另一个选择是将它们分解为单独的 .h 文件 - 但是如果我的应用程序的两个组件最终使用相同的密钥(例如,一个business对象嵌入到 JSON 中作为书签,或用于审查该业务的)然后我必须导入包含business对象的 JSON 路径的 .h。所以在这种情况下,我仍然导入所有相同的数据,只是文件组织更干净。

我的目标是:

  1. 轻松管理用于解析 JSON 的字符串文字
  2. 减少所需的重复数量
  3. 如果/需要时轻松更改/替换 JSON 路径

我上面列出的选项 3(单独的 .h 文件)是我的最佳选择吗?你们用什么,我错过了一个简单的工具吗(不,JSONModel 不是一个选项,因为它需要您的 JSON 密钥来匹配您的 ivar/属性名称 - 我们的后端支持许多平台,所以我们不能只为 iOS 更改 JSON 密钥)。

4

2 回答 2

1

研究使用诸如RestKit 之类的库,它允许您将 JSON 文档映射到一组 Objective-C 类。这意味着您可以读取文档并获取可以通过属性操作的对象数组,而不必跟踪键名。这要容易得多,并且 Xcode 会在您使用类时自动完成您的属性名称。

它需要一些设置,但您只需执行一次。:)

于 2013-03-30T06:42:12.233 回答
0

Just to update this answer - there's a very cool library called Mantle - not perfect, there are some issues with typecasting but still a very solid effort.

于 2014-03-30T15:36:29.057 回答