在 freemarker 中显示 JSON 文本

Display JSON text in freemarker

JSON 文字:

[{"desc":null,"amount":250,"item":"527"},{"desc":"test","amount":3333.33,"item":"522"},{"desc":null,"amount":3333.33,"item":"522"},{"desc" :null,"amount":1500,"item":"520"},{"desc":null,"amount":1560,"item":"519"}]

我尝试了以下代码,但它不起作用: <#assign customrecord = record.custpage_custrecord_itemlist?eval /> <#list customrecord as customrecord_line>

<#list customrecord as customrecord_line>

${customrecord_line.item}
${customrecord_line.desc}
${customrecord_line.amount}

</#list>

注意:(record.custpage_custrecord_itemlist是包含json文本的变量) 请帮助

提前致谢!

模板语言中没有内置 JSON 解析器。 ?eval 解析 FTL 表达式,而不是 JSON。两者恰好相似,但不完全相同。与 JSON 不同,FTL 中没有 null。所以我猜你 运行 的错误是 null 是未定义的。一个可能的解决方法是你之前做了类似 <#assign null=''> 的事情,所以当 ?eval 看到 null 时,它用一个空字符串替换它(这不是很好,但你看看机制是什么是;您也可以选择其他一些特殊值)。

但是唯一正确的解决方案是使用真正的 JSON 解析器并将结果放入数据模型(或者编写一个 TemplateMethodModel 来调用真正的 JSON解析器和 returns 结果)。