init
This commit is contained in:
109
public/tinymce/classes/util/JSON.js
Normal file
109
public/tinymce/classes/util/JSON.js
Normal file
@ -0,0 +1,109 @@
|
||||
/**
|
||||
* JSON.js
|
||||
*
|
||||
* Copyright, Moxiecode Systems AB
|
||||
* Released under LGPL License.
|
||||
*
|
||||
* License: http://www.tinymce.com/license
|
||||
* Contributing: http://www.tinymce.com/contributing
|
||||
*/
|
||||
|
||||
/**
|
||||
* JSON parser and serializer class.
|
||||
*
|
||||
* @class tinymce.util.JSON
|
||||
* @static
|
||||
* @example
|
||||
* // JSON parse a string into an object
|
||||
* var obj = tinymce.util.JSON.parse(somestring);
|
||||
*
|
||||
* // JSON serialize a object into an string
|
||||
* var str = tinymce.util.JSON.serialize(obj);
|
||||
*/
|
||||
define("tinymce/util/JSON", [], function() {
|
||||
function serialize(o, quote) {
|
||||
var i, v, t, name;
|
||||
|
||||
quote = quote || '"';
|
||||
|
||||
if (o === null) {
|
||||
return 'null';
|
||||
}
|
||||
|
||||
t = typeof o;
|
||||
|
||||
if (t == 'string') {
|
||||
v = '\bb\tt\nn\ff\rr\""\'\'\\\\';
|
||||
|
||||
return quote + o.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g, function(a, b) {
|
||||
// Make sure single quotes never get encoded inside double quotes for JSON compatibility
|
||||
if (quote === '"' && a === "'") {
|
||||
return a;
|
||||
}
|
||||
|
||||
i = v.indexOf(b);
|
||||
|
||||
if (i + 1) {
|
||||
return '\\' + v.charAt(i + 1);
|
||||
}
|
||||
|
||||
a = b.charCodeAt().toString(16);
|
||||
|
||||
return '\\u' + '0000'.substring(a.length) + a;
|
||||
}) + quote;
|
||||
}
|
||||
|
||||
if (t == 'object') {
|
||||
if (o.hasOwnProperty && Object.prototype.toString.call(o) === '[object Array]') {
|
||||
for (i=0, v = '['; i<o.length; i++) {
|
||||
v += (i > 0 ? ',' : '') + serialize(o[i], quote);
|
||||
}
|
||||
|
||||
return v + ']';
|
||||
}
|
||||
|
||||
v = '{';
|
||||
|
||||
for (name in o) {
|
||||
if (o.hasOwnProperty(name)) {
|
||||
v += typeof o[name] != 'function' ? (v.length > 1 ? ',' + quote : quote) + name +
|
||||
quote +':' + serialize(o[name], quote) : '';
|
||||
}
|
||||
}
|
||||
|
||||
return v + '}';
|
||||
}
|
||||
|
||||
return '' + o;
|
||||
}
|
||||
|
||||
return {
|
||||
/**
|
||||
* Serializes the specified object as a JSON string.
|
||||
*
|
||||
* @method serialize
|
||||
* @param {Object} obj Object to serialize as a JSON string.
|
||||
* @param {String} quote Optional quote string defaults to ".
|
||||
* @return {string} JSON string serialized from input.
|
||||
*/
|
||||
serialize: serialize,
|
||||
|
||||
/**
|
||||
* Unserializes/parses the specified JSON string into a object.
|
||||
*
|
||||
* @method parse
|
||||
* @param {string} s JSON String to parse into a JavaScript object.
|
||||
* @return {Object} Object from input JSON string or undefined if it failed.
|
||||
*/
|
||||
parse: function(text) {
|
||||
try {
|
||||
// Trick uglify JS
|
||||
return window[String.fromCharCode(101) + 'val']('(' + text + ')');
|
||||
} catch (ex) {
|
||||
// Ignore
|
||||
}
|
||||
}
|
||||
|
||||
/**#@-*/
|
||||
};
|
||||
});
|
Reference in New Issue
Block a user