В настоящее время мы оцениваем JSONModel для нашего приложения iOS и им очень нравится. Дело в том, что нам нужно иметь дело с API OData, который имеет тенденцию к избыточному усложнению вещей в нескольких местах. Например, при получении обратно список лиц, все интерфейсы API, я могу думать о возвращенной что-то простое, как это:JSONModel и OData
{
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 «будучи моей наименьшей проблемой (поскольку мы можем просто разобрать ее). Но я не могу понять, как справиться с тем, что каждый элемент в списке обернут хешем с типом элемента в качестве ключа, так что отношения JSONModel через NSArray не работают. Я мог бы определить JSONKeyMapper для моего пункта, как это:
@"Item.id" : @"id",
@"Item.name" : @"name"
но стандарт OData обертывания только элементы в их собственной хэш-структуре, когда Есть несколько элементов. Например, при выборке только один элемент из API OData, я (как и ожидалось):
{
d: {
results: {
id => 123,
name => 'foo'
}
}
}
:-(
Любые идеи о том, как бороться с этим и, прежде чем кто-либо говорит один из? две основные клиенты OData IOS там: к сожалению, они оба кажутся довольно неподдерживаемыми и/или устарели, в том числе официального перечисленной корпорацией Майкрософт
Спасибо за понимание, Джен! –
К сожалению, AFAICT OData v3 по-прежнему переносит расширенные свойства в свою собственную структуру хэша, что действительно затрудняет использование стандартных библиотек ORM, таких как JSONModel или даже RestKit. Слишком плохо, что существуют рабочие ссылки OData для почти всех основных языков, и официальная клиентская библиотека iOS даже не компилируется с недавними версиями iOS, когда я последний раз проверял. –
Я думаю, вы ошибаетесь. OData v3 делает * not * wrap расширенные свойства в свою собственную структуру хеширования. Я просто запустил учебник ниже, и он работает как шарм. Хороший чистый JSON. http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/odata-v3/creating-an-odata-endpoint –