json.js
上传用户:kimgenplus
上传日期:2016-06-05
资源大小:20877k
文件大小:2k
- /*
- Copyright (c) 2004-2006, The Dojo Foundation
- All Rights Reserved.
- Licensed under the Academic Free License version 2.1 or above OR the
- modified BSD license. For more information on Dojo licensing, see:
- http://dojotoolkit.org/community/licensing.shtml
- */
- dojo.provide("dojo.json");
- dojo.require("dojo.lang.func");
- dojo.require("dojo.string.extras");
- dojo.require("dojo.AdapterRegistry");
- dojo.json = {jsonRegistry:new dojo.AdapterRegistry(), register:function (name, check, wrap, override) {
- dojo.json.jsonRegistry.register(name, check, wrap, override);
- }, evalJson:function (json) {
- try {
- return eval("(" + json + ")");
- }
- catch (e) {
- dojo.debug(e);
- return json;
- }
- }, serialize:function (o) {
- var objtype = typeof (o);
- if (objtype == "undefined") {
- return "undefined";
- } else {
- if ((objtype == "number") || (objtype == "boolean")) {
- return o + "";
- } else {
- if (o === null) {
- return "null";
- }
- }
- }
- if (objtype == "string") {
- return dojo.string.escapeString(o);
- }
- var me = arguments.callee;
- var newObj;
- if (typeof (o.__json__) == "function") {
- newObj = o.__json__();
- if (o !== newObj) {
- return me(newObj);
- }
- }
- if (typeof (o.json) == "function") {
- newObj = o.json();
- if (o !== newObj) {
- return me(newObj);
- }
- }
- if (objtype != "function" && typeof (o.length) == "number") {
- var res = [];
- for (var i = 0; i < o.length; i++) {
- var val = me(o[i]);
- if (typeof (val) != "string") {
- val = "undefined";
- }
- res.push(val);
- }
- return "[" + res.join(",") + "]";
- }
- try {
- window.o = o;
- newObj = dojo.json.jsonRegistry.match(o);
- return me(newObj);
- }
- catch (e) {
- }
- if (objtype == "function") {
- return null;
- }
- res = [];
- for (var k in o) {
- var useKey;
- if (typeof (k) == "number") {
- useKey = """ + k + """;
- } else {
- if (typeof (k) == "string") {
- useKey = dojo.string.escapeString(k);
- } else {
- continue;
- }
- }
- val = me(o[k]);
- if (typeof (val) != "string") {
- continue;
- }
- res.push(useKey + ":" + val);
- }
- return "{" + res.join(",") + "}";
- }};