RestKit的dynamic映射能解决这个复杂的JSON映射吗?

我在我的应用程序中使用了RestKit,它需要使用现有的同步服务,以这种方式构build传入的数据:

{ "timestamp": 000000000001, "status" : 0, "syncData":[ { "errors":[], "rows":[ {"name":"AAA", ...}, {"name":"BBB", ...}, ...], "rtype":"FOO" }, { "errors":[], "rows":[ {"id":1, "description":"ZZZ", ....}, {"id":2, "description":"YYY", ....}, ...], "rtype":"BAR" }, ... 

我是RestKit的新手,试图找出解决这个问题的最佳方法,并将相同结构的数据发送回服务器。 我正在使用RestKit的核心数据。

我已经映射了一个SyncResponse实体来保存顶级数据,我想从中获得的是FOO对象的集合,“AAA”,“BBB”等,以及BAR对象的集合“ZZZ “,”YYY“等,以及由”rtype“字段指示其类的几十个其他对象集合。

我已经阅读了关于dynamic映射的doc部分以及一些示例代码和post,但是我不知道dynamic映射在这种情况下是如何工作的,因为它不是{"a":{is A}, "b":{is B}}格式。 这是可能的使用dynamic映射,如果是这样,我在这里丢失什么概念?

假设有可能,我如何从FOO和BAR的集合开始发回数据,当然用SyncUpdateRequest包装器来代替SyncResponse?

我不认为你可以单独使用一套映射来做到这一点。

您最好的select可能是为每个项目创build映射,为整体结构创build映射。 整体映射只是将数组提取为一个NSArray的字典。 一旦你有数组,你可以自己迭代它,检查types,然后应用RKMapperOperation来执行映射。


为了发送您的更新请求,我认为它是一个完全独立的东西。 我将构build一个字典数组,其中字典具有“普通”键/值对的某些信息和“复杂”键/值对的rows 。 然后,您的请求映射就是根据这个字典数组(这包括自定义部分)和行(这应该是您的类的响应映射的反向)。 然后RestKit应该能够以标准方式处理它(与上面的响应映射的复杂性相比)。