Arrays SAPUI5 XML视图中嵌套JSON数组的聚合绑定

Arrays SAPUI5 XML视图中嵌套JSON数组的聚合绑定,arrays,json,xml,sapui5,Arrays,Json,Xml,Sapui5,我正在尝试使用JSON模型中嵌套数组中的数据进行聚合绑定: 以下是我的“Menus.json”模型: } 例如,我想像这样把“星期一”绑在我的桌子上 <Table id="nordMenuTable" inset="false" items="{Menus>/monday/menus}"> <columns> <Column minScreenWidth="Phone" d

我正在尝试使用JSON模型中嵌套数组中的数据进行聚合绑定: 以下是我的“Menus.json”模型:

} 例如,我想像这样把“星期一”绑在我的桌子上

<Table id="nordMenuTable" inset="false" items="{Menus>/monday/menus}">
                    <columns>
                        <Column minScreenWidth="Phone" demandPopin="true"/>
                        <Column minScreenWidth="Desktop" demandPopin="true" popinDisplay="WithoutHeader"><ObjectIdentifier title="{i18n>NordColumn1}"/></Column>
                        <Column minScreenWidth="Desktop" demandPopin="true" popinDisplay="Inline"><ObjectIdentifier title="{i18n>NordColumn3}"/></Column>
                        <Column minScreenWidth="Phone" hAlign="End"><ObjectIdentifier title="{i18n>NordColumn2}"/></Column>
                    </columns>
                    <items>
                        <ColumnListItem>
                            <ObjectIdentifier title="{Menus>title}"/>
                            <Text text="{Menus>menu}"/>
                            <Text text="{Menus>price2}"/>
                            <Text text="{Menus>price}"/>
                        </ColumnListItem>
                    </items>
                </Table>


请帮助我使用嵌套数组的JSON文件的绑定语法。我知道,如果我有一个只包含嵌套数组中数据的单一JSON模型,事情会顺利进行,但我需要这样的JSON文件,以及与特定日期相关的所有菜单。

您的JSON模型应该类似于:

{
    "days": {
        "monday": {
            "menus": [{

            }]
        },
        "tuesday": {
            "menus": [{

            }]
        }
    }
}
您的
项目
聚合应该是
项目=“{Menus>/days/monday/Menus}”

对于
ColumnListItem
路径
{Menus>menu}
,因为它们是相对路径

[View SS][JSON不正确,请首先更正JSON。 然后在视图中,像这样绑定,这里我的模型名是device。 JSON:

{
“天”:[{
“星期一”:{
“菜单”:[{
“菜单”:“意大利面、意大利肉酱或蔬菜、番茄酱和帕尔玛干酪”,
“价格”:“3.90”,
“价格2”:“2.90”,
“标题”:“Menü1”
}, {
“菜单”:“我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们。”,
“价格”:“4.40”,
“价格2”:“3.40”,
“标题”:“Menü2”
}, {
“菜单”:“罗非鱼和科科斯齐特罗嫩格拉斯沙司2,70欧元Chinakohl、Karotten、Champignons和Erbsen Jasmin Duftreis”,
“价格”:“4.80”,
“价格2”:“3.50”,
“标题”:“现场烹饪”
}, {
“菜单”:“Vegitarisch Kokos辣椒酱”,
“价格”:“1.20”,
“价格2”:“Suppenschale:3.50”,
“标题”:“补充”
}, {
“菜单”:“Blumenkohl Lauch Brattling mit Soja Kerbeldip”,
“价格”:“2.50”,
“价格2”:“,
“标题”:“素食者狂吠”
}]
}
}]
};
```
[1]: https://i.stack.imgur.com/Ej022.png

在我上面的示例中有一些错误,对此表示抱歉,但我也尝试了与您完全相同的方法,但仍然不起作用:/在ColumnListItem路径中,您必须删除斜杠,因为它们是相对路径。您如何声明您的jsonModel?是否总是bing“monday”或者只是一个例子?另外,你能改变JSON结构吗?假设你需要表中所有工作日的所有菜单,那么工厂函数就不可能了。就像那样,你需要手动在tableHi@fabiopagoti上添加项,谢谢你注意。是的,这只是一个只绑定星期一的例子。是吗您有一个想法或示例如何动态处理所有5天?并通过按按钮或类似按钮来更改表绑定您好!这就是我的意思:由于许多数组分布在一个大JSON中,您将无法使用数据绑定。使用您现有的JSON模式,唯一的选项是使用add/inser动态添加行sap.m.Table类的t个方法。您不需要一个按钮来显式执行此操作。如果您可以控制JSON结构,我建议您更改它以获得数据绑定的许多好处。如果您不能,IMO中没有其他好的替代方法。您想做什么?更改JSON格式还是不使用数据绑定?@fabiopagoti然后我想更改JSON格式,但我只想显示一天的菜单。例如,如果我每天在页脚处有5个按钮,我只想显示特定的菜单,即选中的菜单
{
    "days": {
        "monday": {
            "menus": [{

            }]
        },
        "tuesday": {
            "menus": [{

            }]
        }
    }
}
    {
    "days": [{
        "monday": {
            "menus": [{
                "menu": "Spaghetti mit Rinder-Bolognese oder VEGATARISCH mit TomatenBasilikumsoße und Parmesan",
                "price": "3.90",
                "price2": "2.90",
                "title": "Menü 1"
            }, {
                "menu": "Schweinerückensteak frisch aus der Pfanne Maisgemüse mit Ofenpaprika und Blattpetersilie Kartoffel Gnocchi im Kürbissud grüne Pfeffer-Butter mit Basilikum",
                "price": "4.40",
                "price2": "3.40",
                "title": "Menü 2"
            }, {
                "menu": "Tilapia aus dem Ofen mit Kokos-Zitronengras Sauce 2,70 € Chinakohl, Karotten, Champignons und Erbsen Jasmin Duftreis",
                "price": "4.80",
                "price2": "3.50",
                "title": "Live Cooking"
            }, {
                "menu": "VEGETARISCH Kokos Paprikasuppe",
                "price": "1.20",
                "price2": "Suppenschale: 3.50",
                "title": "Suppe"
            }, {
                "menu": "Blumenkohl-Lauch Bratling mit Soja-Kerbeldip",
                "price": "2.50",
                "price2": "",
                "title": "Veganer Bratling"
            }]
        }
    }]
};

```
    <Table id="nordMenuTable" inset="false" items="{path : 'device>/days/0/monday/menus'}">
                    <columns>
                        <Column minScreenWidth="Phone" demandPopin="true"/>
                        <Column minScreenWidth="Desktop" demandPopin="true" popinDisplay="WithoutHeader"><ObjectIdentifier title="Hello1"/></Column>
                        <Column minScreenWidth="Desktop" demandPopin="true" popinDisplay="Inline"><ObjectIdentifier title="{i18n>NordColumn3}"/></Column>
                        <Column minScreenWidth="Phone" hAlign="End"><ObjectIdentifier title="Hello2"/></Column>
                    </columns>
                    <items>
                        <ColumnListItem>

                            <cells>
                              <Text text="{device>title}"/>
                              <Text text="{device>price2}"/>
                               <Text text="{device>price}"/>

                            </cells>
                        </ColumnListItem>
                    </items>
                </Table>



  [1]: https://i.stack.imgur.com/Ej022.png