在freemarker中显示JSON文本

xxls0lw8  于 2023-01-18  发布在  其他
关注(0)|答案(1)|浏览(171)

JSON文本:
[{"描述":空,"数量":250,"项目":" 527 "},{"描述":"测试","数量":3333.33,"项目":" 522 "},{"描述":空,"数量":3333.33,"项目":" 522 "},{"描述":空,"数量":1500,"项目":" 520 "},{"描述":空,"数量":1560,"项目":" 519 "}]
我尝试了下面的代码,但它不工作:〈#分配自定义记录=记录.自定义页_自定义记录_项目列表?eval/〉〈#将自定义记录列为自定义记录行〉
〈#将自定义记录列为自定义记录行〉

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

</#list>

注意:(record. custpage_custrecord_itemlist是包含JSON文本的变量)请帮助
先谢了!

xzv2uavs

xzv2uavs1#

**更新:**从2.3.31开始有了?eval_json,它不仅能理解JSON null,而且更安全,因为它不能调用数据模型中对象的方法(因为它不像JSON那样被计算为FTL)。

模板语言中没有内置的JSON解析器。?eval解析FTL表达式,而不是JSON。这两者恰好相似,但并不完全相同。与JSON不同,FTL中没有null。所以我猜您遇到的错误是null未定义。一个可能的解决方案是,您可以在前面执行类似<#assign null=''>的操作,所以当?eval看到null时,它会用一个空字符串替换它(这不是很好,但是您可以看到机制是什么;你也可以选择一些其它特殊值)。
但唯一正确的解决方案是使用真实的的JSON解析器并将结果放入数据模型(或者编写一个TemplateMethodModel,调用真正的JSON解析器并返回结果)。

相关问题