新手在这里有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 :(得分:0)
不清楚为什么你这样展示可能有不同形式的JSON。我假设它们对于不同的搜索类型请求是不同的响应。从一个响应开始,首先获得该工作的映射(可能是最后一个简单的交易列表JSON)。
您的JSON都不包含唯一标识符 - 它确实应该。这使您可以灵活地在对象之间建立连接,并确保您不会在数据存储中获得重复的对象。
您的图表可能会歪曲关系,但它们应该相互反转(因此1:n& n:1,而不是1:1)。这允许Core Data正确维护关系。
由于您的JSON全部嵌套,因此映射相对简单。如果源和目标键名称不匹配,您应该使用RKEntityMapping
和addRelationshipMappingWithSourceKeyPath:mapping:
(或RKRelationshipMapping
)的组合。