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文本的变量)请帮助
先谢了!
1条答案
按热度按时间xzv2uavs1#
**更新:**从2.3.31开始有了
?eval_json
,它不仅能理解JSONnull
,而且更安全,因为它不能调用数据模型中对象的方法(因为它不像JSON那样被计算为FTL)。模板语言中没有内置的JSON解析器。
?eval
解析FTL表达式,而不是JSON。这两者恰好相似,但并不完全相同。与JSON不同,FTL中没有null
。所以我猜您遇到的错误是null
未定义。一个可能的解决方案是,您可以在前面执行类似<#assign null=''>
的操作,所以当?eval
看到null
时,它会用一个空字符串替换它(这不是很好,但是您可以看到机制是什么;你也可以选择一些其它特殊值)。但唯一正确的解决方案是使用真实的的JSON解析器并将结果放入数据模型(或者编写一个
TemplateMethodModel
,调用真正的JSON解析器并返回结果)。