Freemarker 使用JsonNode对象时,模板里的空字符串默认值无效的解决方案

之前使用JavaBean接收模板返回的数据时一直出错,决定换成JsonNode来接收

(以下均适用js语法,方便代码上色)

<!-- 假定一个body,key只有"a" -->
let body = {"a":"1"};
<!-- 当输入对象为 JavaBean 时,这种写法没问题 -->
"body":{
 	"a":"${body.a!}",
    "b":"${body.b!}"
}
<!-- console -->
"body":{
 	"a":"1",
    "b":""
}
<!-- 当输入对象为 JsonNode 时,问题出来了 -->
"body":{
 	"a":"${body.a!}",
    "b":"${body.b!}"
}
<!-- console -->
"body":{
 	"a":""1"",
    "b":
}

前面转换报错的问题解决了,现在遇到了一个新的问题,解析出来的模板不是标准JSON格式

期间使用过很多种方法均无效,后来想了个直白的办法。。

<!-- 使用反斜杠,硬写入两个双引号 -->
"body":{
 	"a":${body.a!"\"\""},
    "b":${body.b!"\"\""}
}
<!-- console -->
"body":{
 	"a":"1",
    "b":""
}

直接的空字符串在模板里会被无视掉,得实际拼接两个双引号的字符串进去才行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值