首页 > 编程 > JavaScript > 正文

JS对象序列化成json数据和json数据转化为JS对象的代码

2019-11-19 15:41:50
字体:
来源:转载
供稿:网友

JS对象序列化成json数据:

function Serialize(obj){     switch(obj.constructor){       case Object:         var str = "{";         for(var o in obj){           str += o + ":" + Serialize(obj[o]) +",";         }         if(str.substr(str.length-1) == ",")           str = str.substr(0,str.length -1);          return str + "}";          break;        case Array:                var str = "[";          for(var o in obj){            str += Serialize(obj[o]) +",";          }          if(str.substr(str.length-1) == ",")            str = str.substr(0,str.length -1);          return str + "]";          break;        case Boolean:          return "/"" + obj.toString() + "/"";          break;        case Date:          return "/"" + obj.toString() + "/"";          break;        case Function:          break;        case Number:          return "/"" + obj.toString() + "/"";          break;         case String:          return "/"" + obj.toString() + "/"";          break;        }    }   var staff_list_obj  ={};  var staff_id   = 1001;  staff_list_obj[staff_id]  = {};  staff_list_obj[staff_id]["姓名"] = '111';  staff_list_obj[staff_id]["测试"] = '222';  alert(Serialize(staff_list_obj));

JS对象序列化为JSON对象的方法二

var $ = $ || {};/**  * 将JS对象序列化为JSON字符串  * @param {Mixed} o The variable to decode  * @return {String} The JSON string  * String json = $.encode(o);  */ $.encode = (function() {  if ( typeof(JSON)!=='undefined' && typeof(JSON.stringify)!=='undefined') {    return JSON.stringify;  }  var I = !!{}.hasOwnProperty, _ = function(I) {    return I < 10 ? "0" + I : I;  }, A = {    "/b" : "//b",    "/t" : "//t",    "/n" : "//n",    "/f" : "//f",    "/r" : "//r",    "/"" : "///"",    "//" : "////"  };  return (function(C) {    if (typeof C == "undefined" || C === null) {      return "null";    } else {      if (Object.prototype.toString.call(C) === "[object Array]") {        var B = ["["], G, E, D = C.length, F;        for (E = 0; E < D; E += 1) {          F = C[E];          switch (typeof F) {            case "undefined" :            case "function" :            case "unknown" :              break;            default :              if (G) {                B.push(",");              }              B.push(F === null ? "null" : $.encode(F));              G = true;          }        }        B.push("]");        return B.join("");      } else {        if ((Object.prototype.toString.call(C) === "[object Date]")) {          return "/"" + C.getFullYear() + "-" + _(C.getMonth() + 1) + "-" + _(C.getDate()) + "T" + _(C.getHours()) + ":" + _(C.getMinutes()) + ":" + _(C.getSeconds()) + "/"";        } else {          if (typeof C == "string") {            return "/"" + C.replace(/([/x00-/x1f//"])/g, function(B, _) {              var I = A[_];              if (I) {                return I;              }              return '';            }).replace(/[^/u0000-/u00FF]/g, function($0) {              return escape($0).replace(/(%u)(/w{4})/gi, "//u$2")            }) + "/"";          } else {            if (typeof C == "number") {              return isFinite(C) ? String(C) : "null";            } else {              if (typeof C == "boolean") {                return String(C);              } else {                B = ["{"], G, E, F;                for (E in C) {                  if (!I || C.hasOwnProperty(E)) {                    F = C[E];                    if (F === null) {                      continue;                    }                    switch (typeof F) {                      case "undefined" :                      case "function" :                      case "unknown" :                        break;                      default :                        if (G) {                          B.push(",");                        }                        B.push($.encode(E), ":", $.encode(F));                        G = true;                    }                  }                }                B.push("}");                return B.join("");              }            }          }        }      }    }  });})();

json数据转化为JS对象:

var jsonString={....}/[....];eval("var obj="+jsonString);alert(obj);

写道

function evalJSON(json){ var obj = null; try { obj = eval("(" + json + ")"); } catch(E){} return obj ; }

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表