在六月份的时候,接触到的freemarker这个模板引擎。当时项目上因为需要在已经固定好模板的json串根据获取的不同参数,生成不同参数的json。最开始我是在方法中用jsonObject这个对象去拼装json,后面由于灵活性太低。改个属性需要改动大。后面在网上寻找一些方法就找到这个freemaker这个模板引擎。
在项目中我是使用ftl类型文件提前把模板json写好,在方法中通过流读取文件转成字符串。再将拼接好的参数替换到json指定位置。
在这个替换的过程我们需要注意一些字符做处理,不然参数替换后可能会生成一个不可读的json串。(下面我就写一下我在做的过程中遇到的一些小问题)
1、数字型参数不做处理到千位数会有逗号(1,000)
这种时候我们需要在模板这个set参数的位置加个?c "length":${column.length?c}
2、有时候传的参数里面带有"这种时候会使生成的json串无法识别这时候我们需要使用替换字符串方法replace 将参数中"的替换成/"
"formulaExpression":"${formulaExpression?replace("/"", '//"')}"
3、将参数boolean型转成string型
"useScpUpload":${isTrue?string('true','false')}
4、在遍历数组时常用的属性
4-1 子元素名_has_next(表示是否还有下一个,有则加上标签内容) <#list gpProblemSet as columnMapping> { "sourceColumnCode":"${columnMapping.sourceColumnCode}" } <#if columnMapping_has_next>,</#if> </#list> 4-2 子元素名_index(表示当前遍历数组的下标) <#list gpProblemSet as columnMapping> { "index": "${columnMapping_index}" } </#list>
还有很多方法未用到,到时有用到在更新...