2014-02-11 86 views
0

新手在这里restkit问题:(与restkit映射卡住

这是我的交易JSON响应属于一个交换和货币:

{ 
    "exchange": "symbol", 
    "currency": "USD", 
    "trades": [ 
     { 
      "maxPrice": "684.00", 
      "minPrice": "683.10", 
      "price": "683.28", 
      "timestamp": "1390451006", 
      "volume": "1.0" 
     } 
    ] 
} 

我有交易的数组属于在此响应的根部所限定的交换,交易可以是1..N。

我交换类已2属性

{ 
    "displayName": "name", 
    "symbol": "symbol" 
} 

我的货币类有2个属性。

{ 
    "symbol": "$", 
    "code": "USD" 
} 

一个适当的JSON响应和easyout将

{ 
    "trades": [ 
     { 
      "maxPrice": "684.00", 
      "minPrice": "683.10", 
      "price": "683.28", 
      "timestamp": "1390451006", 
      "volume": "1.0", 
      "exchange": { 
       "displayName": "name", 
       "symbol": "symbol" 
      }, 
      "currency": { 
       "symbol": "$", 
       "code": "USD" 
      } 
     } 
    ] 
} 

因为所有这些行业都属于一个交换和我指定他们在JSON响应的根目录中的货币,我迷路了至于我可以如何在restkit中映射这些关系。

我的实体

Exchange 
-displayName 
-symbol 
-trades(Exchange -->>Trade | 1:n) 

Currency 
-code 
-symbol 
-trades(Currency -->> |1:n) 

Trade 
-maxPrice 
-minPrice 
-price 
-tradeDate 
-volume 
-currency(Trade >-->Currency |n:1) 
-exchange(Trade >-->Exchange |n:1) 

任何指针或想法将衷心感谢。

感谢您的帮助。

+0

那么你完全控制了JSON?什么是你的数据模型(你想要映射到的类)以及它里面的关系?要指定映射,您需要源(JSON)和目标(模型)... – Wain

+0

是的,我拥有完全控制权,使用mogenrator生成核心数据模型的基础代码。添加实体定义。谢谢你的帮助。 – user3296887

回答

0

不清楚你为什么显示不同形式的JSON。我假设他们对于不同的搜索类型请求是不同的响应。先从一个响应开始,然后获得该工作的映射(可能是最后一个简单的交易清单JSON)。

您的JSON都不包含唯一标识符 - 它确实应该。这使您可以灵活地了解对象之间的连接方式,并确保您不会在数据存储中获得重复的对象。

你的图表可能会歪曲关系,但它们应该是彼此相反的(所以1:n & n:1,而不是1:1)。这允许Core Data正确维护关系。

由于您的JSON全部嵌套,所以映射相对简单。您应该使用RKEntityMappingaddRelationshipMappingWithSourceKeyPath:mapping:(或RKRelationshipMapping,如果源和目标键名称不匹配)的组合。

+0

对不起我的错误,它的n:1在交易方面的货币和交换。 – user3296887