String Apache-free标记中的字符串比较

String Apache-free标记中的字符串比较,string,chatbot,freemarker,data-processing,String,Chatbot,Freemarker,Data Processing,我有一个列表,其中包含以下值。列表从restAPI获取数据。 我知道如何比较记录,但列表有很多值,所以我不知道如何在数组或列表中搜索。对于eg,列表具有以下值。我需要检查列表中是否存在特定记录 var items= [ { "organizationCode": "FP1", "organizationName": "FTE Process Org" }, {

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

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>)
var项目=[
{
“组织机构代码”:“FP1”,
“组织名称”:“FTE流程组织”
},
{
“组织机构代码”:“T11”,
“组织名称”:“FTE离散组织”
}, 
{
“组织机构代码”:“PD2”,
“组织名称”:“产品开发组织”
},
{
“组织机构代码”:“PD1”,
“组织名称”:“产品1开发组织”
},
{
“组织代码”:“MD1”,
“组织名称”:“主要开发组织”
}
]
我必须根据organizationName搜索值。
我试过了
items.organizationName?包含()项
但不起作用


我找不到任何资料来寻求帮助。

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

items?map(it -> it.organizationName)?seq_contains(input)
稍微相关,但有时您希望检索匹配项的列表(因此您还将拥有
organizationCode
),在这种情况下,您应该编写
items?过滤器(it->it.organizationName==input)

请注意,FreeMarker 2.3.29中添加了
?映射
?过滤器

另见:


你能澄清一下你的问题吗?请给出一些有关情况/用例的上下文,您正在尝试完成什么,以及到目前为止您已经尝试了什么。嗨@BertJanSchrijver,我已经更新了问题。这是否回答了您的问题?它总是返回FALSE我不知道freemarker中是否存在任何搜索类型的方法,或者我知道如何像循环一样迭代记录,然后进行比较……我想这会有所帮助。嗨,你能帮我一下吗?