2017-06-15 89 views
0

我想从freemarker模板创建一个json。在freemarker模板中分配列表

我的输出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 

回答

0

好,FreeMarker的未专门用于数据转储到JSON格式,所以有手动方法:

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

当然,如果你做这些很多,那么它值得写一些#macro-s或这样的。

+0

<#sep>语法抛出错误。我知道我可以写一些类似于你的建议,但有尾随,这是问题,例如[“123”,“234”,“346”,] –

+0

错误可能是因为我使用freemarker版本2.3.20 –

+0

那么它适用于版本2.3.23 –