Я довольно новичок в FTL, так что это может быть глупый вопрос, однако мне не посчастливилось его решить.FTL - Как правильно получить значения объекта JSON
У меня есть 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>
, которые показывают мне мои ключи правильно :(
EDIT: Банкоматы это выглядит (я не могу подтвердить), что это может быть какой-то особый характер, как &
и null
. в тексте
не можете просто использовать 'case.vehicleData.modelO ptions? values'? – ddekany
Отсутствует верхняя часть указанных сообщений об ошибках. Кроме того, вы можете распечатать ключ, когда возникает ошибка, используя '<#attempt> ... <#recover> ...#attempt>', поэтому вам не нужно гадать. Во всяком случае, FreeMarker не заботится о '&' в ключе. Это, безусловно, «нуль». – ddekany