2017-06-15 67 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 –