summaryrefslogtreecommitdiff
path: root/includes/js/dojo/_base/json.js
diff options
context:
space:
mode:
Diffstat (limited to 'includes/js/dojo/_base/json.js')
-rw-r--r--includes/js/dojo/_base/json.js137
1 files changed, 0 insertions, 137 deletions
diff --git a/includes/js/dojo/_base/json.js b/includes/js/dojo/_base/json.js
deleted file mode 100644
index 55d8035..0000000
--- a/includes/js/dojo/_base/json.js
+++ /dev/null
@@ -1,137 +0,0 @@
-if(!dojo._hasResource["dojo._base.json"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
-dojo._hasResource["dojo._base.json"] = true;
-dojo.provide("dojo._base.json");
-
-dojo.fromJson = function(/*String*/ json){
- // summary:
- // Parses a [JSON](http://json.org) string to return a JavaScript object.
- // json:
- // a string literal of a JSON item, for instance:
- // `'{ "foo": [ "bar", 1, { "baz": "thud" } ] }'`
-
- return eval("(" + json + ")"); // Object
-}
-
-dojo._escapeString = function(/*String*/str){
- //summary:
- // Adds escape sequences for non-visual characters, double quote and
- // backslash and surrounds with double quotes to form a valid string
- // literal.
- return ('"' + str.replace(/(["\\])/g, '\\$1') + '"').
- replace(/[\f]/g, "\\f").replace(/[\b]/g, "\\b").replace(/[\n]/g, "\\n").
- replace(/[\t]/g, "\\t").replace(/[\r]/g, "\\r"); // string
-}
-
-dojo.toJsonIndentStr = "\t";
-dojo.toJson = function(/*Object*/ it, /*Boolean?*/ prettyPrint, /*String?*/ _indentStr){
- // summary:
- // Returns a [JSON](http://json.org) serialization of an object.
- //
- // description:
- // Returns a [JSON](http://json.org) serialization of an object.
- // Note that this doesn't check for infinite recursion, so don't do that!
- //
- // it:
- // an object to be serialized. Objects may define their own
- // serialization via a special "__json__" or "json" function
- // property. If a specialized serializer has been defined, it will
- // be used as a fallback.
- //
- // prettyPrint:
- // if true, we indent objects and arrays to make the output prettier.
- // The variable dojo.toJsonIndentStr is used as the indent string
- // -- to use something other than the default (tab),
- // change that variable before calling dojo.toJson().
- //
- // _indentStr:
- // private variable for recursive calls when pretty printing, do not use.
-
- if(it === undefined){
- return "undefined";
- }
- var objtype = typeof it;
- if(objtype == "number" || objtype == "boolean"){
- return it + "";
- }
- if(it === null){
- return "null";
- }
- if(dojo.isString(it)){
- return dojo._escapeString(it);
- }
- if(it.nodeType && it.cloneNode){ // isNode
- return ""; // FIXME: would something like outerHTML be better here?
- }
- // recurse
- var recurse = arguments.callee;
- // short-circuit for objects that support "json" serialization
- // if they return "self" then just pass-through...
- var newObj;
- _indentStr = _indentStr || "";
- var nextIndent = prettyPrint ? _indentStr + dojo.toJsonIndentStr : "";
- if(typeof it.__json__ == "function"){
- newObj = it.__json__();
- if(it !== newObj){
- return recurse(newObj, prettyPrint, nextIndent);
- }
- }
- if(typeof it.json == "function"){
- newObj = it.json();
- if(it !== newObj){
- return recurse(newObj, prettyPrint, nextIndent);
- }
- }
-
- var sep = prettyPrint ? " " : "";
- var newLine = prettyPrint ? "\n" : "";
-
- // array
- if(dojo.isArray(it)){
- var res = dojo.map(it, function(obj){
- var val = recurse(obj, prettyPrint, nextIndent);
- if(typeof val != "string"){
- val = "undefined";
- }
- return newLine + nextIndent + val;
- });
- return "[" + res.join("," + sep) + newLine + _indentStr + "]";
- }
- /*
- // look in the registry
- try {
- window.o = it;
- newObj = dojo.json.jsonRegistry.match(it);
- return recurse(newObj, prettyPrint, nextIndent);
- }catch(e){
- // console.debug(e);
- }
- // it's a function with no adapter, skip it
- */
- if(objtype == "function"){
- return null; // null
- }
- // generic object code path
- var output = [];
- for(var key in it){
- var keyStr;
- if(typeof key == "number"){
- keyStr = '"' + key + '"';
- }else if(typeof key == "string"){
- keyStr = dojo._escapeString(key);
- }else{
- // skip non-string or number keys
- continue;
- }
- val = recurse(it[key], prettyPrint, nextIndent);
- if(typeof val != "string"){
- // skip non-serializable values
- continue;
- }
- // FIXME: use += on Moz!!
- // MOW NOTE: using += is a pain because you have to account for the dangling comma...
- output.push(newLine + nextIndent + keyStr + ":" + sep + val);
- }
- return "{" + output.join("," + sep) + newLine + _indentStr + "}"; // String
-}
-
-}