2016-07-07 2 views
0

Я ищу метод в библиотеке для преобразования объекта ответа OData в нормализованный объект js, который может быть отправлен в другую функцию ODataModel.create. Объект OData был бы ответом OData REST, содержащим «d», «__meta», «результаты» и т. Д.UI5 - OData (Response) Нормализация объекта

У меня есть рабочее решение с пользовательскими методами в модуле Утилиты, но я не слишком уверен в своей устойчивости ко всем возможным правилам OData.

ответ

1

не обязательно иметь раздел d, __meta и results в действительном теле OData:

  1. d микстура не является обязательным. Вы также можете просто сформировать свое тело как обычный объект, такой как:

    { Id: 12345, Название: «Это правильное тело OData» }

  2. __metadata раздел не является обязательным, а также и могут быть опущены.

  3. Раздел results - это то, что вы получите при запросе набора сущностей. Если вы запрашиваете один Entity (предоставляя его ключ), этот раздел не учитывается, так как будет только один результат. Вы не можете использовать раздел results, если хотите отправить объекты в службу OData, так как каждая передача должна выполняться в отдельных операциях.

При том, что ваш код нормализации/обработки может быть очень простой и выглядеть следующим образом:

jQuery.each(odata.results, function(idx, value) { 
    var body = value.d ? value.d : value; 
    delete body.__metadata; 
    // Do something with the body, e.g.: 
    ODataModel.create("/AwesomeEntity", body); 
}); 

Я надеюсь, что это делает жизнь легче? Полные спецификации OData v2 JSON можно найти здесь: http://www.odata.org/documentation/odata-version-2-0/json-format/

+0

У меня есть функция, и она работает. Я ищу что-то внутри рамки UI5, которая делает то же самое. – whoiz

Смежные вопросы