【发布时间】:2016-07-07 18:30:44
【问题描述】:
我是 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 在文本中。
【问题讨论】:
-
你不能用
case.vehicleData.modelOptions?values吗? -
缺少引用的错误消息的顶部。此外,当错误发生时,您可以使用
<#attempt>...<#recover>...</#attempt>打印密钥,因此您不必猜测。无论如何,FreeMarker 并不关心密钥中的&。这肯定是某个地方的null。
标签: json freemarker