Apache Freemarker如何在JSON字段为null时省略引号?
解决Freemarker模板中null值生成JSON的问题
你可以通过两种常用方式实现需求:
方法一:使用?c内建函数(推荐)
Freemarker的?c内建函数专门用于生成符合JSON/JavaScript语法的输出,当变量为null时会直接输出不带引号的null,同时还能自动转义字符串中的特殊字符(比如双引号、换行符等),完全符合JSON规范。
修改后的模板:
{ "firstname": ${fname?c} }
方法二:手动条件判断
通过<#if>指令判断变量是否存在且非null,分别输出对应内容:
修改后的模板:
{ "firstname": <#if fname??>"${fname}"<#else>null</#if> }
注:这种方式需要自行处理字符串转义,如果你的fname包含特殊字符,可能需要额外使用转义逻辑,不如?c便捷。
内容的提问来源于stack exchange,提问作者Bhanu
相关产品推荐
相关产品推荐

