我有一个list
,其中包含以下值。 list
从restAPI
获取数据。我知道如何比较记录,但是列表有很多值,所以我不知道如何在数组或列表中搜索。例如,列表具有以下值。我需要检查列表中是否存在特定记录。
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>)
但不起作用
我无法获得任何材料,因此寻求帮助。
问题是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
。
另请参见: