Apache自由标记中的字符串比较

问题描述 投票:1回答:1

我有一个list,其中包含以下值。 listrestAPI获取数据。我知道如何比较记录,但是列表有很多值,所以我不知道如何在数组或列表中搜索。例如,列表具有以下值。我需要检查列表中是否存在特定记录。

var items= [
            {
                "organizationCode": "FP1",
                "organizationName": "FTE Process Org"
            },
            {
                "organizationCode": "T11",
                "organizationName": "FTE Discrete Org"
            }, 
            {
                "organizationCode": "PD2",
                "organizationName": "Product development Org"
            },
            {
                "organizationCode": "PD1",
                "organizationName": "Product1 development Org"
            },
            {
                "organizationCode": "MD1",
                "organizationName": "Main development Org"
            }
        ]

        I have to search value based on organizationName.
        I tried 

items.organizationName?contains(<input>)

但不起作用

我无法获得任何材料,因此寻求帮助。

string chatbot freemarker data-processing
1个回答
1
投票

问题是items.organizationName已经是一个错误,因为items纯粹是一个列表,所以它没有直接的命名子变量。 (当items来自XML时,您可能会看到这种模式,您可以在其中获得类似的子元素列表。但是,对于纯列表来说,这种方法不起作用。)因此,您需要的是以下表达式:

items?map(it -> it.organizationName)?seq_contains(input)

稍有关联,但是有时您想检索匹配项的列表(因此您也将获得organizationCode),在这种情况下,您应该写items?filter(it -> it.organizationName == input)

注意,在FreeMarker 2.3.29中添加了?map?filter

另请参见:

© www.soinside.com 2019 - 2024. All rights reserved.