服务器端返回表示以下对象的字符串:
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");