summaryrefslogtreecommitdiff
path: root/lib/dojo/_base/json.js.uncompressed.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dojo/_base/json.js.uncompressed.js')
-rw-r--r--lib/dojo/_base/json.js.uncompressed.js85
1 files changed, 85 insertions, 0 deletions
diff --git a/lib/dojo/_base/json.js.uncompressed.js b/lib/dojo/_base/json.js.uncompressed.js
new file mode 100644
index 000000000..b70d4ebb8
--- /dev/null
+++ b/lib/dojo/_base/json.js.uncompressed.js
@@ -0,0 +1,85 @@
+define("dojo/_base/json", ["./kernel", "../json"], function(dojo, json){
+ // module:
+ // dojo/_base/json
+ // summary:
+ // This module defines the dojo JSON API.
+
+dojo.fromJson = function(/*String*/ js){
+ // summary:
+ // Parses a JavaScript expression and returns a JavaScript value.
+ // description:
+ // Throws for invalid JavaScript expressions. It does not use a strict JSON parser. It
+ // always delegates to eval(). The content passed to this method must therefore come
+ // from a trusted source.
+ // It is recommend that you use dojo/json's parse function for an
+ // implementation uses the (faster) native JSON parse when available.
+ // js:
+ // a string literal of a JavaScript expression, for instance:
+ // `'{ "foo": [ "bar", 1, { "baz": "thud" } ] }'`
+
+ return eval("(" + js + ")"); // Object
+};
+
+/*=====
+dojo._escapeString = function(){
+ // summary:
+ // Adds escape sequences for non-visual characters, double quote and
+ // backslash and surrounds with double quotes to form a valid string
+ // literal.
+};
+=====*/
+dojo._escapeString = json.stringify; // just delegate to json.stringify
+
+dojo.toJsonIndentStr = "\t";
+dojo.toJson = function(/*Object*/ it, /*Boolean?*/ prettyPrint){
+ // 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 is recommend that you use dojo/json's stringify function for an lighter
+ // and faster implementation that matches the native JSON API and uses the
+ // native JSON serializer when available.
+ // 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.
+ // Note that in 1.6, toJson would serialize undefined, but this no longer supported
+ // since it is not supported by native JSON serializer.
+ // 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().
+ // Note that if native JSON support is available, it will be used for serialization,
+ // and native implementations vary on the exact spacing used in pretty printing.
+ // returns:
+ // A JSON string serialization of the passed-in object.
+ // example:
+ // simple serialization of a trivial object
+ // | var jsonStr = dojo.toJson({ howdy: "stranger!", isStrange: true });
+ // | doh.is('{"howdy":"stranger!","isStrange":true}', jsonStr);
+ // example:
+ // a custom serializer for an objects of a particular class:
+ // | dojo.declare("Furby", null, {
+ // | furbies: "are strange",
+ // | furbyCount: 10,
+ // | __json__: function(){
+ // | },
+ // | });
+
+ // use dojo/json
+ return json.stringify(it, function(key, value){
+ if(value){
+ var tf = value.__json__||value.json;
+ if(typeof tf == "function"){
+ return tf.call(value);
+ }
+ }
+ return value;
+ }, prettyPrint && dojo.toJsonIndentStr); // String
+};
+
+return dojo;
+});