在用freeMarker模板生成数据的时候报freemarker.core.InvalidReferenceException的异常。
报错代码如下:
<#--儿童费用包含-->
<#if !TourUtil.isEmpty(childIncludeInfo)>
<#assign childIncludeInfoMap=TourUtil.json2Map(childIncludeInfo) />
"childIncludeInfo":{
<#--儿童交通-->
<#if !TourUtil.isEmpty(childIncludeInfoMap.trafficInfo)>
<#assign childTrafficInfoMap= TourUtil.json2Map(childIncludeInfoMap.trafficInfo) />
childTrafficInfoMap= TourUtil.json2Map(childIncludeInfoMap.trafficInfo)
问题:
上面这一行转化失败,无法赋值给childTrafficInfoMap。
我一开始以为是传参的时候缺少这个参数,但是在核查过后发现不是参数问题。
原因:
最后发现是TourUtil.json2Map(childIncludeInfo)这里已经转化过一次了,我以为这个api只能把当层的json字符串转化为map,但实际上会把该json字符串内部所有json字符串的map转化为正常字符串的map,所以再次调用该api时就会失败。
解决: