【发布时间】:2016-12-02 23:36:38
【问题描述】:
我希望枚举 FTL(freeMarker 模板语言)中的根对象。适用于所有哈希数组、所有序列数组以及所有标准键值对象。
我需要 JSON 格式的输出。 我找到了 JSON 枚举的发布代码: http://ericbrandel.com/2013/03/28/freemarker-container-to-json/
<#macro objectToJsonMacro object>
<@compress single_line=true>
<#if object?is_hash || object?is_hash_ex>
<#assign first="true">
{
<#list object?keys as key>
<#if first="false">,</#if>
<#assign value><@objectToJsonMacro object=object<key> /></#assign>
"${key}" : ${value?trim}
<#assign first="false">
</#list>
}
<#elseif object?is_enumerable>
<#assign first="true">
[
<#list object as item>
<#if first="false">,</#if>
<#assign value><@objectToJsonMacro object=item /></#assign>
${value?trim}
<#assign first="false">
</#list>
]
<#else>
"${object?trim}"
</#if>
</@compress>
</#macro>
但代码在最新版本的 FreeMarker 中不起作用(引发错误)。
如果有人能提供任何帮助,我将不胜感激。另外,我看不到“获取”根对象的方法。
谢谢, 丹·林斯特
【问题讨论】:
-
它会抛出什么错误?
-
数据模型(我想这就是你所说的根对象的意思)可以通过
.data_model访问(参见freemarker.org/docs/ref_specvar.html)。
标签: freemarker