SDK互換JSON
最近集積融雲SDKで、下融雲のSDKソースコードを見てみると、ソースコードの中にJSONに対する適合があることがわかった.
1、長所:中国語以外の文字はUnicodeに変わる.
2、欠点:JSON.parse()はevalを使って変換していますが、この方法は安全ではありません.new Functionを使うと紹介されている人もいますが、テストはありません.ここは一時的にマークして、暇なテストがあります.
このコードを見て、融雲SDKは互換性の上でまだ処理されていると感じて、またIE 7の下でテストをして、やはり安定して運行することができます(この年はまだIE 7があって、不思議ではありません)
融雲公式サイト:https://www.rongcloud.cn
融雲ドキュメント:https://docs.rongcloud.cn/v4
1、長所:中国語以外の文字はUnicodeに変わる.
2、欠点:JSON.parse()はevalを使って変換していますが、この方法は安全ではありません.new Functionを使うと紹介されている人もいますが、テストはありません.ここは一時的にマークして、暇なテストがあります.
if (!window["JSON"]) {
window["JSON"] = (function () {
function JSON() {
}
JSON.parse = function (sJSON) {
return eval('(' + sJSON + ')');
};
JSON.stringify = function (value) {
return this.str("", {
"": value });
};
JSON.str = function (key, holder) {
var i, k, v, length, mind = "", partial, value = holder[key], me = this;
if (value && typeof value === "object" && typeof value.toJSON === "function") {
value = value.toJSON(key);
}
switch (typeof value) {
case "string":
return me.quote(value);
case "number":
return isFinite(value) ? String(value) : "null";
case "boolean":
case "null":
return String(value);
case "object":
if (!value) {
return "null";
}
partial = [];
if (Object.prototype.toString.apply(value) === "[object Array]") {
length = value.length;
for (i = 0; i < length; i += 1) {
partial[i] = me.str(i, value) || "null";
}
v = partial.length === 0 ? "[]" : "[" + partial.join(",") + "]";
return v;
}
for (k in value) {
if (Object.prototype.hasOwnProperty.call(value, k)) {
v = me.str(k, value);
if (v) {
partial.push(me.quote(k) + ":" + v);
}
}
}
v = partial.length === 0 ? "{}" : "{" + partial.join(",") + "}";
return v;
}
};
JSON.quote = function (string) {
var me = this;
me.rx_escapable.lastIndex = 0;
return me.rx_escapable.test(string) ? '"' + string.replace(me.rx_escapable, function (a) {
var c = me.meta[a];
return typeof c === "string" ? c : "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4);
}) + '"' : '"' + string + '"';
};
JSON.rx_escapable = new RegExp('[\\\"\\\\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]', "g");
JSON.meta = {
"\b": "\\b",
" ": "\\t",
"
": "\
",
"\f": "\\f",
"\r": "\\r",
'"': '\\"',
"''": "\\''",
"\\": "\\\\"
};
return JSON;
})();
}
このコードを見て、融雲SDKは互換性の上でまだ処理されていると感じて、またIE 7の下でテストをして、やはり安定して運行することができます(この年はまだIE 7があって、不思議ではありません)
融雲公式サイト:https://www.rongcloud.cn
融雲ドキュメント:https://docs.rongcloud.cn/v4