UI5 - OData(响应)对象规范化

时间:2016-07-07 22:02:18

标签: sapui5 ui5-library

我正在寻找库中的方法将OData响应对象转换为可以发送到另一个ODataModel.create函数的规范化js对象。 OData“对象”将是包含“d”,“_ _ meta”,“结果”等的OData REST响应。

我在Utilities模块中有自定义方法的工作解决方案,但我不太清楚它对所有可能的OData规则的弹性。

1 个答案:

答案 0 :(得分:1)

没有必要在有效的OData正文中包含d__metaresults部分:

  1. d药水是可选的。您也可以将您的身体形成为常规对象,例如:

    {     Id:12345,     名称:'这是一个有效的OData主体' }

  2. __metadata部分也是可选的,可能会遗漏。

  3. results部分是您在查询实体集时收到的内容。如果您查询单个实体(通过提供其密钥),则会忽略此部分,因为只有一个结果。如果要将实体提交到OData服务,则不能使用results部分,因为每次提交都应该在单独的操作中进行。

  4. 这样,您的规范化/处理代码可能非常简单,如下所示:

    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/