最近写 asp 发现一个问题,古老的 asp 缺少对 json 数据的安全支持,对象 转字符的方法没有,字符转对象 虽然可以通过 eval("(" + json + ")") 的方式实现 json 解析,但是容易被不良人当作木马入口,你期待的可能是一个正常的 json 字符串,但人家传过来的有可能是 (function() { Response.Write("Hacked"); })() 之类的 js 执行语句。所以,用 js 实现了 parse 和 stringify 方法:
var JSON = { stringify: tojson, parse: fromjson };
WSH.Echo(JSON.stringify(JSON.parse('[ true, { "key": "value", "arr": [ { } ], "num" : 95.27 }, null, false ]')));
function fromjson(str) {
var regTag = /[\{\[\"ntf\d\.]/, i = 0, len = str.length;
function newParse() {
var s = waitStr(regTag);
if(!s) return;
switch(s) {
case "{": return findObj();
case "[": return findArr();
case "t": return findTrue();
case "f": return findFalse();
case "n": return findNull();
case '"': retur