1

我工作的公司正在考虑使用 RestKit。但是,出于安全原因,我们的服务器返回的 JSON 是被包围的字符。这是一种痛苦。在另一个不使用 RestKit 且仅很少使用 JSON 的 iPhone 应用程序中,我解析从服务器返回的字符串,删除 JSON 字符串前后的字符。解析字符串后,我在字符串上调用 JSONValue(我们使用的是 SBJSON)并获得一个 NSDictionary。

我听说 RestKit 具有可插拔的架构。如果是这种情况,在某个地方我可以在 RestKit 进行解析之前拦截从服务器返回的字符串吗?

4

2 回答 2

2

我想找到一个不需要我以任何方式更改 RestKit 代码库的修复程序,我找到了它。答案是创建和注册我自己的解析器。

解析器需要符合 RKParser 协议。基本上我需要做的是修剪服务器响应而不是将响应解析为对象 - 已经有一个解析器可以做到这一点:RKJSONParserJSONKit。所以我继承了这个类并在启动时注册了我的解析器:

[[RKParserRegistry sharedRegistry] setParserClass:[MyJSONParser class] 
                                      forMIMEType:@"application/json"];
于 2012-05-24T23:11:40.720 回答
0

只是想注意,现在您可以通过子类化来实现自己的检索/映射操作

  • RKHTTPRequestOperation (doc) — 用于从服务器检索文件
  • RKObjectRequestOperation (doc) — 用于映射
  • RKManagedObjectRequestOperation (doc) — 用于映射到核心数据对象

[RKObjectManager registerRequestOperationClass:] 并使用(doc)方法注册它们。

于 2015-04-20T15:32:37.427 回答