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:] 中的断言失败