我是FTL的新手,所以这可能是一个愚蠢的问题,但我没有幸运能解决它。
我有一个JSON对象:
{
"Q1": "KOŽENÝ VOLANT",
"Q5": "ZESÍLENÉ ZÁVĚSY KOL",
"Q6": "AIRBAG SPOLUJEZDCE",
"M3": "BOČNÍ OCHR - LIŠ MALÉ",
"Q7": "SERVOŘÍZENÍ ELEKTR",
"M4": "SP"
}
我需要在右侧访问此文本。 我是怎么做的:
<#function getModelOptions>
<#local results = []>
<#list case.vehicleData.modelOptions?keys as key>
<#local results = results+[case.vehicleData.modelOptions[key]]>
</#list>
<#return results>
</#function>
之后的事情就像:
<#assign dataVybavaVozidla = getModelOptions() >
<@input.draw2ColumnNoBorderTable nadpis="Výbava vozidla" data=dataVybavaVozidla />
对于90%的情况,这适用于我,但在某些情况下它只是给我一个错误:
> ---- FTL stack trace ("~" means nesting-related):
> - Failed at: #local results = results + [case.vehi... [in template "path/to/template.ftl" in function "getModelOptions" at line
> 1501, column 25]
> - Reached through: #assign dataVybavaVozidla = getModelO... [in template "path/to/template.ftl" at line 674, column 17]
> ----
我尝试比较两种情况下的数据,当它工作时和不能正常工作时。两者看起来一样。我也试着
<#list case.vehicleData.modelOptions?keys as key>
<tr>${key}</tr>
</#list>
正确显示我的键:(
编辑:
Atm看起来(我无法确认)是它可以是文字中的&
和null
等特殊字符。
答案 0 :(得分:1)
如果您的数据可以包含空值,则添加空检查:
<#if case.vehicleData.modelOptions[key]??>
<#local results = results+[case.vehicleData.modelOptions[key]]>
</#if>