VelocityEngine从字符串中删除转义字符

Rudziankoŭ:

当我打电话时:

velocityEngine.evaluate(velocityContext, writer, "", template);

parameter.querystring={"hi": "\"hello\""}

评估后writer包含{"hi": ""hello""}

题:

  • 为什么Velocity删除转义字符?
  • 如何防止删除转义字符?
凯文·克鲁伊森(Kevin Cruijssen):

注意:我不了解VelocityEngine,所以请带一点盐。

为什么Velocity删除转义字符?

VelocityEngine最有可能parameter.querystring以单独的String形式读取JSON中的值因此,将String "\"hello\""读取为文本"hello"然后,在编写器中的后面,它只是简单地将此字符串粘贴回原样。

我个人认为这是编写者源代码中的一个缺陷,Pattern.quote(String)在插入之前,它应该已经使用了某种方式来转义所有字符。

如何防止删除转义字符?

\可以手动添加其他转义符,以解决编写器行为的问题。因此,您parameter.querystring将成为:

{"hi": "\\\"hello\\\""}

基本上是text \"hello\",其中\和和"字符都被转义,并附加了一个字符\以将其放入java String中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章