先看代码:
<html>
<head>
<meta charset="utf-8"></meta>
<title>QUnit Tesing - yjSecurity</title>
<link rel="stylesheet" href="./node.js/public/js/QUnit-1.14.0/qunit-1.14.0.css">
</head>
<body>
<div id="qunit"></div>
<div id="qunit-fixture"></div>
<script src="./node.js/public/js/QUnit-1.14.0/qunit-1.14.0.js"></script>
<!--
<script>
JSON.parse = null;
</script>
<script src="./node.js/public/js/json/json2.js"></script>
-->
<script>
test("IE8-JSON.parse", function() {
var s0="\u0061\u0001\u0062";
var o1={name:s0};
var s1=JSON.stringify(o1);
equal(s1,'{"name":"a\\u0001b"}');
equal(s1,"{\"name\":\"a\\u0001b\"}");
var o2=JSON.parse(s1);
var ss2 = '{"name":"\\u0061\\u0001\\u0062"}';
var o3 = JSON.parse(ss2);
equal(o3.name,s0);
});
</script>
</body>
</html>
注意:ss2,里面的转义字符“斜杠”必须写2次“\\u0061\\u0001\\u00062”,因为第一次是ss2作为一个字串,反转义后,就只剩下一个斜杠“\u0061\u0001\u0062”,也是一个字串,做为name属性的值。