我们目前正在为我们的 iOS 应用程序评估JSONModel并且到目前为止非常喜欢它。问题是,我们必须处理OData API,这往往会使一些地方的事情变得过于复杂。例如,当返回一个实体列表时,我能想到的所有 API 都会返回如下简单的内容:
{
items: [
{ id => 123, name => 'foo' },
{ id => 124, name => 'bar' },
{ id => 125, name => 'baz' },
]
}
不幸的是,OData 给了我更多类似的东西:
{
d: {
results: [
{ Item => { id => 123, name => 'foo' } },
{ Item => { id => 124, name => 'bar' } },
{ Item => { id => 125, name => 'baz' } },
]
}
}
“d”是我最小的问题(因为我们可以把它解析掉)。但我不知道如何处理列表中的每个项目都包装在以项目类型作为键的哈希中的事实,因此通过 NSArray 的 JSONModel 关系不起作用。我可能会像这样为我的 Item 定义 JSONKeyMapper:
@"Item.id" : @"id",
@"Item.name" : @"name"
但是 OData 标准仅在有多个项目时将项目包装在自己的哈希结构中。例如,当仅从 OData API 获取单个项目时,我得到(如预期的那样):
{
d: {
results: {
id => 123,
name => 'foo'
}
}
}
:-(
关于如何处理这个问题的任何想法?在任何人推荐两个主要的 OData iOS 客户端之一之前:不幸的是,它们似乎都不受支持和/或过时,包括微软列出的官方客户端。