由于老版本mootools框架里封装了个JSON
导致不能使用自带的JSON.stringify和JSON.parse方法
但是项目又比较老 不好升级mootools
临时解决方法:
搜索
return eval("("+string+")")}});Native.implement
替换为
return eval("("+string+")")},stringify:JSON.stringify,parse:JSON.parse,});Native.implement
其实就是加上stringify、parse方法
var JSON = new Hash({
$specialChars: {
"\b": "\\b",
"\t": "\\t",
"\n": "\\n",
"\f": "\\f",
"\r": "\\r",
'"': '\\"',
"\\": "\\\\"
},
$replaceChars: function(A) {
return JSON.$specialChars[A] || "\\u00" + Math.floor(A.charCodeAt() / 16).toString(16) + (A.charCodeAt() % 16).toString(16)
},
encode: function(B) {
switch ($type(B)) {
case "string":
return '"' + B.replace(/[\x00-\x1f\\"]/g, JSON.$replaceChars) + '"';
case "array":
return "[" + String(B.map(JSON.encode).filter($defined)) + "]";
case "object":
case "hash":
var A = [];
Hash.each(B, function(E, D) {
var C = JSON.encode(E);
if (C) {
A.push(JSON.encode(D) + ":" + C)
}
});
return "{" + A + "}";
case "number":
case "boolean":
return String(B);
case false:
return "null"
}
return null
},
decode: function(string, secure) {
if ($type(string) != "string" || !string.length) {
return null
}
if (secure && !(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(string.replace(/\\./g, "@").replace(/"[^"\\\n\r]*"/g, ""))) {
return null
}
return eval("(" + string + ")")
}
});
var JSON = new Hash({
$specialChars: {
"\b": "\\b",
"\t": "\\t",
"\n": "\\n",
"\f": "\\f",
"\r": "\\r",
'"': '\\"',
"\\": "\\\\"
},
$replaceChars: function(A) {
return JSON.$specialChars[A] || "\\u00" + Math.floor(A.charCodeAt() / 16).toString(16) + (A.charCodeAt() % 16).toString(16)
},
encode: function(B) {
switch ($type(B)) {
case "string":
return '"' + B.replace(/[\x00-\x1f\\"]/g, JSON.$replaceChars) + '"';
case "array":
return "[" + String(B.map(JSON.encode).filter($defined)) + "]";
case "object":
case "hash":
var A = [];
Hash.each(B, function(E, D) {
var C = JSON.encode(E);
if (C) {
A.push(JSON.encode(D) + ":" + C)
}
});
return "{" + A + "}";
case "number":
case "boolean":
return String(B);
case false:
return "null"
}
return null
},
decode: function(string, secure) {
if ($type(string) != "string" || !string.length) {
return null
}
if (secure && !(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(string.replace(/\\./g, "@").replace(/"[^"\\\n\r]*"/g, ""))) {
return null
}
return eval("(" + string + ")")
},
stringify: JSON.stringify,
parse: JSON.parse,
});