当前位置: 首页 > 知识库问答 >
问题:

SAP UI5:如何在Javascript中读取嵌套odata对象中的数据?

穆修杰
2023-03-14

我正在调用一个带有$扩展参数的oData v2服务,因此url如下所示:

https://host/odata/v2/myEntity?$扩展=key4

返回一个oData json对象,如下所示:

{
   "d": {
      "results": [
         {
            "key1": "val1",
            "key2": "val2",
            "key3": "val3",
            "key4": {
               "results": [
                  {
                     "key5": "val5",
                     "key6": "val6",
                     "key7": "val7"
                  }
               ]
            }
         }
      ]
   }
}

一旦我收到oData对象,在我的controller.js中,我创建一个这样的JSONModel对象并将其分配给viewModel:

var oJson = new sap.ui.model.json.JSONModel(oData);
this.getView().byId("tableId").setModel(oJson, "myModel");

接下来,在我看来。xml我有一个id为“tableId”的表,它将myModel绑定为:

<Table id="tableId" items="{path: 'myModel>/results' }">

通过以上操作,我可以检索表中key1、key2和key3的值:

<Text text="{myModel>key1}" />

但我无法获取key4下的结果数组的值,以访问key5、key6和key7。请问我该如何做到这一点?

共有1个答案

宇文温文
2023-03-14

您提到了聚合绑定。如何将key4下的所有值绑定到同一个表?

取决于您希望显示key4值的方式。由于.../key4/结果是一个集合,与/d/结果相同,因此您可以创建另一个表/列表控件,该控件显示通过上下文绑定从第一个表中选择的key4中的项目。无法将key4绑定在同一个表中。

>

  • 关于一般的聚合概念,请参阅SAP UI5中聚合的答案。

    对于聚合绑定,尤其是使用ODataModel

    • https://stackoverflow.com/a/44901517/5846045
    • https://stackoverflow.com/a/52546999/5846045

    在这种情况下不需要使用JSONModel

  •  类似资料:
    • 我这里有一个很长的json:https://textup.fr/601885q4我想读一个“支付令牌合同”中的数据,特别是那些带有“id”的数据:1我的问题是,我不知道如何称呼特定的词汇,因为它们都有相同的名称。这是否可能,我还不习惯操作如此复杂的对象,因为我是初学者。我会尝试像:[“订单][x][“id”:1][“基本价格”]这样的东西,x是一个for循环,循环遍历每个“订单”显示。但是我无法将

    • 本文向大家介绍在JavaScript中打印JSON嵌套对象?,包括了在JavaScript中打印JSON嵌套对象?的使用技巧和注意事项,需要的朋友参考一下 要在JavaScript中打印JSON嵌套对象,请将for循环与JSON.parse()一起使用。以下是代码- 示例 要运行上述程序,您需要使用以下命令- 在这里,我的文件名为demo145.js。 输出结果 这将产生以下输出-

    • 我有一个mongodb文档,我正在使用axios ajax调用来提取它。文档有一个对象数组,其中还包含一个嵌套的对象数组。每个对象都分配了一个mongo id。最顶端的数据显示在相应的最顶端的表示组件中,但对象的后续阵列不会显示在其相对表示组件中。我得到的错误是。“TypeError:this.props.card.rdfts未定义”,但会显示它的非数组同级。然而,当我查看react-dev工具和

    • 我需要将该模式格式提取到如下所示的治疗区域行项目:

    • 我在弄清楚如何从apache Olingo构建的uri中提取数据时遇到了问题。从$Expad中提取数据可以使用这种语法。 URI:OData/PropertyOrigin?$expand=Property1($select=field1);$expand=Property2($select=field1ofProperty2)) 但是,当我试图从第二个$Expand中获取数据时,我得到了一个对象空

    • 后台返回的对象如下 传入一个值,如果这个值是city的值 就返回 city province 的索引值 传入是prefecture的值 就返回 prefecture city province的值 [0,1] 或者 [0,2,3]这种