如何在自由标记中转义 json 字符串
2022-09-02 01:17:34
我们正在使用Spring MVC和freemarker作为模板语言构建一个宁静的API。我们选择在自由标记中构建 json 响应
示例 freemarker.ftl:
{
"field1" : "${response.value1}",
"field2" : "${response.value2}"
}
当值中的字符串包含引号(或 JSON 语法中的任何其他字符)时,我们会遇到问题。
问题:如何使用自由标记转义这些字符串?
我们已经看过或但它们没有涵盖所有相关字符(例如)。?xml
?html
\
编辑:将转义字符串以与JavaScript兼容。由于JSON基于JavaScript(JavaScript Object Notation),它将起作用。?js_string
编辑2:如果弹出单引号,将对其进行转义,这再次导致无效的JSON。它的修补程序是:?js_string
${variable?js_string?replace("\\'", "\'")}
如果你真的想挑剔:
${variable?js_string?replace("\\'", "\'")?replace("\\>",">")}