我正在尝试创建一个脚本,该脚本将检查id并导出其名称,但遇到以下情况;
FTL堆栈跟踪(“〜”表示与嵌套相关:]
<#list [services] as st><#if st.externalId == externalId>${st.name}</#if>
<#list st.children as nd<#if nd.externalId == externalId>${nd.name}</#if>
<#list nd.children as rd><#if rd.externalId == externalId>${rd.name}</#if>
<#list rd.children as th><#if th.externalId == externalId>${th.name}</#if>
<#list th.children as ths><#if ths.externalId == externalId>${ths.name}</#if>
<#list ths.children as thb><#if thb.externalId == externalId>${thb.name}</#if>
</#list></#list></#list></#list></#list></#list>`
如果所有externalID都有数字,该脚本就可以正常工作,但是当它为null时也可以为null,但我得到一个错误;
<#assign services=
{
"externalId": 1,
"name": "one",
"children": [
{
"externalId": 2,
"name": "two",
"children": [
{
"externalId": null,
"name": "three",
"children": [
{
"externalId": 4,
"name": "four",
"children": [
{
"externalId": 5,
"name": "five",
"children": []
} ]
} ]
}]
}]
}>
我正在测试https://try.freemarker.apache.org/
请帮助!
在FreeMarker中,您(几乎)总是必须指定一个期望出现null
-s的默认值。像:nd.externalId! == external
会将nd.externalId
视为空字符串。或者,当null
为${th.name!'null'}
时,null
将打印th.name
。