Я полный Freemarker newb ie, и я использую фреймворк, который использует шаблон Freemarker. Я пытаюсь отсортировать последовательность хэшей на основе определенного поля «дата».
Мой ввод json выглядит следующим образом:
{"fields": [
[
{
"contentType": "application/json",
"date": 1.563457325E9,
"id": "abc",
"size": 0.0
},
{
"contentType": "application/json",
"date": 1.563426843E9,
"id": "def",
"size": 0.0
},
{
"contentType": "application/json",
"date": 1.563454092E9,
"id": "ghi",
"size": 0.0
},
{
"contentType": "application/json",
"date": 1.563425862E9,
"id": "jkl",
"size": 0.0
},
{
"contentType": "application/json",
"date": 1.563426128E9,
"id": "mno",
"size": 0.0
},
{
"contentType": "application/json",
"date": 1.563453696E9,
"id": "pqr",
"size": 0.0
},
{
"contentType": "application/json",
"date": 1.563426813E9,
"id": "stu",
"size": 0.0
},
{
"contentType": "application/json",
"date": 1.563426177E9,
"id": "vwx",
"size": 0.0
}
]
]
}
Когда я пытаюсь сделать это: <#assign j=fields[0].eval>
, я получаю следующую ошибку:
Не удалось "? eval" строку с этой ошибкой: --- begin-message --- Синтаксическая ошибка в? eval-ed строке в строке 1, столбец 55: обнаружен "E9", но ожидалось одно из: ".." ".. " "," "}" "." "[" "(" "?" "!" "??" "+" "-" "" "/" "%" "! =" "=" "==" "> =" "> "--- end-message --- Сбой выражения: ==> fields [0]? eval [в шаблоне" 89-1070010335 "в строке 1, столбец 14] ---- Трассировка стека FTL (" ~ "означает связанные с вложением)
Я хочу сделать что-то вроде этого:
<#assign j=fields[0]>
<#list j?sort_by("date") as i>
${i.date}: ${i.id}
</#list>
Как я могу преобразовать поле даты из нотации scientifi c в число в freemarker, а затем sort_by, основанный на значении этого поля даты?
Я был бы рад, если бы я мог получить некоторые указатели или какую-либо конкретную ссылку из Замечания по документации Freemarker .