当我打电话时:
velocityEngine.evaluate(velocityContext, writer, "", template);
与parameter.querystring
={"hi": "\"hello\""}
评估后writer
包含{"hi": ""hello""}
题:
注意:我不了解VelocityEngine,所以请带一点盐。
为什么Velocity删除转义字符?
VelocityEngine最有可能parameter.querystring
以单独的String形式读取JSON中的值。因此,将String "\"hello\""
读取为文本"hello"
。然后,在编写器中的后面,它只是简单地将此字符串粘贴回原样。
我个人认为这是编写者源代码中的一个缺陷,Pattern.quote(String)
在插入之前,它应该已经使用了某种方式来转义所有字符。
如何防止删除转义字符?
\
可以手动添加其他转义符,以解决编写器行为的问题。因此,您parameter.querystring
将成为:
{"hi": "\\\"hello\\\""}
基本上是text \"hello\"
,其中\
和和"
字符都被转义,并附加了一个字符\
以将其放入java String中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句