之前使用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":""
}
直接的空字符串在模板里会被无视掉,得实际拼接两个双引号的字符串进去才行。