在 freemarker 模板中分配列表

Assigning list in freemarker template

我想从 freemarker 模板创建 json。

我的输出json

{
  data : ["123", "234", "346"]
}

所以我有一个列表 inputData: ["123", "234", "346"]。 我想在 .ftl 模板中做类似下面的事情。

<#escape x as x?json_string>
{
   "data": "${inputData}"
}
</#escape>

但是出现以下错误

content: Expected a string or something automatically convertible to string (number, date or boolean), but this evaluated to a sequence

嗯,FreeMarker 并不专门用于将数据转储为 JSON 格式,所以有手动方法:

{
   "data": [<#list inputData as i>"${i?json_string}"<#sep>, </#list>]
}

当然,如果你经常这样做,那么值得为它写一些 #macro-s 之类的东西。