我正在使用 form:hidden 来自 spring 表单的标签在 json 中存储一些值
<form:hidden path="myJson"/>
此 JSON 值具有以下性质:
[{"html":"<a href=\"index.html\">text has 'single quotes' or even \"double quotes\"</a>"}]
因此 JSON 有双引号,如果它们在字符串中,则用 \" 转义,并且可能有单引号作为其 HTML 实体转义
'
所以我一直在使用像这样的普通输入 type="hidden" :
<input type="hidden" name="myJson" value='[{"html":"<a href=\"index.html\">text has 'single quotes' or even \"double quotes\"</a>"}]'>
注意 value 属性使用单引号。现在,使用 spring 形式输出使用双引号:
<input type="hidden" name="myJson" value="[{"html":"<a href=\"index.html\">text has 'single quotes' or even \"double quotes\"</a>"}]">
所以当我得到值时,我只得到“[{”,其余的都写在页面的正文中。
另外,如果我不能像这样使用 htmlEscape="false" :
<input:hidden path="myJson" htmlEscape="false"/>
因为我得到了充满 htmlEntities 的所有值:
[{"html;"...
然后使用此 JSON 值的库按字面意思读取它们,而不是编写链接,而是在正文中写入完整的 HTML。
有什么方法可以改变 input:hidden 的输出,使其显示单引号而不是双引号?
或者,有没有更好的方法来实现这一点?要求是这个 JSON 可以包含 HTML 以及单引号和双引号。
谢谢!