RestKit 中的 elementToPropertyMapping

Posted

技术标签:

【中文标题】RestKit 中的 elementToPropertyMapping【英文标题】:elementToPropertyMapping in RestKit 【发布时间】:2011-05-26 11:36:35 【问题描述】:

我正在学习 RestKit。我遇到了它提供的 elementToPropertyMapping 功能。我想知道是否可以将此映射用于 xml 文档?还是仅适用于 JSON?

在tutorial 中,我发现他们提供了 JSON 提要。所以我很困惑。还有是否有任何其他用于 ios 的 XML 解析器提供此映射功能。 谢谢

【问题讨论】:

【参考方案1】:

您找到的教程已过期。 elementToPropertyMappings 不再使用。您无需从 RKObject 或 RKManagedObject 继承,而是使用普通的 Objective-c 类并使用 RKObjectMapping 将数据映射到它们。

您可以找到新文档here。

但是是的,您可以将 RestKit 的对象映射用于 XML 文档。解析器应该检测 mimetype 并使用 xml 解析器而不是 json;如果不是,您可以根据链接文档明确告诉它使用 xml。

【讨论】:

抱歉,它移动了。更新了链接。 链接指向描述 JSON 对象映射的文档,而不是 XML 映射:( 映射的定义方式相同。 RestKit 处理它在内部接收 XML 而不是 JSON 的事实。【参考方案2】:

其实 gitHub 上的教程已经过时了,但是即使是新的教程也没有关于如何使用 RestKit 有效地查询 XML 文件以进行正确映射的参考,这对于像我这样的新手来说非常困惑.

作为快速参考,我将尝试向您展示它使用 XML 的方式:

假设你有这样的回应:

<?xml version="1.0" encoding="UTF-8"?>
<users type="array">
    <user>
        <id>1</id>
        <name>Roberto</name>
        <company>Apple</company>
    </user>
    <user>
        <id>2</id>
        <name>Carlos</name>
        <company>Adobe</company>
     </user>
</users>

如果你想在你的Objective-C项目中映射一个类Users,你必须特别注意keyPath,在这种情况下:"users"

为此,您使用:

[[RKObjectManager sharedManager].mappingProvider setMapping:objectMapping forKeyPath:@"users.user"];

其余的,如果您使用此链接上教程的第一部分(示例对象映射)就可以了:

https://github.com/RestKit/RestKit/wiki/Object-mapping

【讨论】:

【参考方案3】:

这是一个很好的xml parser comparison for iOS

通常您应该能够使用 RestKit 进行这种映射。这取决于您的 xml 有多复杂。如果它依赖于命名空间和外星技术,RestKit 可能会很困难。

对于纯 xml,Restkit 工作得很好。一些tutorials/examples,最后是RestKit API docs。寻找 RKXMLParserLibXML

【讨论】:

以上是关于RestKit 中的 elementToPropertyMapping的主要内容,如果未能解决你的问题,请参考以下文章

Restkit“*** -[RKManagedObjectMapping initWithEntity:] 中的断言失败”

Restkit:-[RKObjectMappingProvider mappingForPatternMatchingString:context:] 中的断言失败

RestKit 中的 elementToPropertyMapping

关于 RestKit 中的对象序列

restkit 0.20.0 中的请求超时

如何过早取消 RestKit 中的请求并调用“didFailWithError”