Apache 免费标记中的字符串比较

String comparision in Apache free marker

我有一个 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>)

但不工作

我无法得到任何material所以寻求帮助。

问题是 items.organizationName 已经是一个错误,因为 items 是一个纯粹的列表,所以它没有直接命名的子变量。 (当 items 来自 XML 时,您可能会看到该模式,您可以在其中获得类似的子元素列表。但同样不适用于普通列表。)所以,你需要什么这个表达式是:

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

有点相关,但有时你想检索匹配项目的列表(所以你也会有 organizationCode),在这种情况下你应该写 items?filter(it -> it.organizationName == input).

请注意,?map?filter 是在 FreeMarker 2.3.29 中添加的。

另请参阅: