Java Scriptlet双引号转义问题

时间:2018-11-19 10:54:16

标签: java string jsp escaping scriptlet

服务器端返回表示以下对象的字符串:

value = {"attrName": "attrValue is \"some value\""};

客户端/ JSP:

情况1:

JSON.parse('<%= value %>');

情况2:

JSON.parse("<%= value %>");

case 1中,由于插入JSON.parse('{"attrName": "attrValue is "some value""}');时JavaScript看起来像value-JSON完全无效,因此生成JSON解析错误。

case 2中产生语法错误,因为JavaScript看起来像JSON.parse("{"attrName": "attrValue is \"some value\""}");-JSON.parse("{"a弄乱了一切。

问题:寻找解释为何以这种方式插入字符串以及可能的全局解决方案(当代码中JSON.parse的所有出现都不需要更改代码时)< / p>

更新1

从案例1 JSP生成的Java文件:

out.write("\r\nsomeStringsJSON.parse('");
out.print(value);
out.write('" ));\r\nsomeMoreStrings");

从案例2 JSP生成的Java文件:

out.write("\r\nsomeStringsJSON.parse(");
out.print(value);
out.write(" ));\r\nsomeMoreStrings");

0 个答案:

没有答案