Core data 坚持使用restkit映射

Core data 坚持使用restkit映射,core-data,restkit,Core Data,Restkit,有restkit问题的新手: 这是我对属于交易所和货币的交易的json响应: { "exchange": "symbol", "currency": "USD", "trades": [ { "maxPrice": "684.00", "minPrice": "683.10", "price": "683.28", "timestamp": "139045100

有restkit问题的新手:

这是我对属于交易所和货币的交易的json响应:

{
    "exchange": "symbol",
    "currency": "USD",
    "trades": [
        {
            "maxPrice": "684.00",
            "minPrice": "683.10",
            "price": "683.28",
            "timestamp": "1390451006",
            "volume": "1.0"
        }
    ]
}
我有一个属于此响应根中定义的交易所的交易数组,交易可以是1..n

我的exchange类有2个属性

{
    "displayName": "name",
    "symbol": "symbol"
}
我的货币类有两个属性

{
    "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)
如果您有任何建议或想法,我们将不胜感激


感谢您的帮助。

不清楚您为什么会显示不同形式的JSON。我假设它们是针对不同搜索类型请求的不同响应。从一个响应开始,首先获取该工作的映射,可能是最后一个JSON,它是一个简单的交易列表

您的JSON中没有一个包含唯一标识符——它确实应该包含唯一标识符。这使您能够灵活地在对象之间建立连接,并确保不会在数据存储中获得重复的对象

您的图表可能会歪曲这些关系,但它们应该是彼此相反的,所以是1:n&n:1,而不是1:1。这允许核心数据正确地维护关系


由于JSON都是嵌套的,所以映射相对简单。如果源键名和目标键名不匹配,您应该结合使用RKEntityMapping和addRelationshipMappingWithSourceKeyPath:mapping:或RKRelationshipMapping。

那么您可以完全控制JSON?您的数据模型是什么?要映射到的类以及其中的关系是什么?要指定映射,您需要源JSON和目标模型……是的,我拥有完全控制权,使用mogenrator为核心数据模型生成底层代码。添加了实体定义。谢谢你的帮助。对不起,我弄错了。这是货币和外汇交易的n:1。