说我有一个名为users
的无序数组:
"users": [
{"id": "6", "name": "Bob"},
{"id": "2", "name": "Ryan"}
]
是否可以通过MVEL(或Freemarker)模板在id == 2
中吸引用户?如果一个或多个,则抛出错误。 @foreach
似乎有可能,但我希望更简洁。
答案 0 :(得分:0)
FreeMarker对此没有内置功能(它具有{"6": "Bob", "2": "Ryan"}
的功能),因此您必须为此编写一个#function
。
<#function getById(idNamePairs, id)>
<#local found = false>
<#list idNamePairs as idNamePair>
<#if idNamePair.id == id>
<#if found>
<#stop "Id not unique: ${id}">
</#if>
<#local name = idNamePair.name>
<#local found = true>
</#if>
</#list>
<#if !found>
<#stop "No entry with this id: ${id}">
</#if>
<#return name>
</#function>
然后您可以像这样使用它:
${getById(users, "6")}