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


Posted in Javascript onAugust 23, 2017

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 ; 
}
Javascript 相关文章推荐
Javascript开发包大全整理
Dec 22 Javascript
不要在cookie中使用特殊字符的原因分析
Jul 13 Javascript
非常好用的JsonToString 方法 简单实例
Jul 18 Javascript
javascript中match函数的用法小结
Feb 08 Javascript
关闭浏览器窗口弹出提示框并且可以控制其失效
Apr 15 Javascript
IE浏览器中图片onload事件无效的解决方法
Apr 29 Javascript
Jquery选择器中使用变量实现动态选择例子
Jul 25 Javascript
一分钟理解js闭包
May 04 Javascript
ES6新特性八:async函数用法实例详解
Apr 21 Javascript
es6+angular1.X+webpack 实现按路由功能打包项目的示例
Aug 16 Javascript
解决微信小程序中转换时间格式IOS不兼容的问题
Feb 15 Javascript
微信小程序版本自动更新的方法
Jun 14 Javascript
Angular 2 利用Router事件和Title实现动态页面标题的方法
Aug 23 #Javascript
angular2路由切换改变页面title的示例代码
Aug 23 #Javascript
通俗解释JavaScript正则表达式快速记忆
Aug 23 #Javascript
bootstrap fileinput实现文件上传功能
Aug 23 #Javascript
jQuery Position方法使用和兼容性
Aug 23 #jQuery
详解EasyUi控件中的Datagrid
Aug 23 #Javascript
Vue0.1的过滤代码如何添加到Vue2.0直接使用
Aug 23 #Javascript
You might like
php读取msn上的用户信息类
2008/12/05 PHP
php面向对象全攻略 (七) 继承性
2009/09/30 PHP
PHP使用GIFEncoder类处理gif图片实例
2014/07/01 PHP
php强制下载文件函数
2016/08/24 PHP
php 广告点击统计代码(php+mysql)
2018/02/21 PHP
PHP的mysqli_ssl_set()函数讲解
2019/01/23 PHP
jquery 可排列的表实现代码
2009/11/13 Javascript
Javascript new关键字的玄机 以及其它
2010/08/25 Javascript
获取offsetTop和offsetLeft值的js代码(兼容)
2013/04/16 Javascript
JS控制输入框内字符串长度
2014/05/21 Javascript
JavaScript实现自动变换表格边框颜色
2015/05/08 Javascript
CSS3实现动态背景登录框的代码
2015/07/28 Javascript
JavaScript中的数据类型转换方法小结
2015/10/26 Javascript
javascript针对cookie的基本操作实例详解
2015/11/30 Javascript
jQuery 常用代码集锦(必看篇)
2016/05/16 Javascript
第一次接触神奇的Bootstrap基础排版
2016/07/26 Javascript
理解javascript中的Function.prototype.bind的方法
2017/02/03 Javascript
jQuery.Form上传文件操作
2017/02/05 Javascript
基于vuejs实现一个todolist项目
2017/04/11 Javascript
BootStrap Table复选框默认选中功能的实现代码(从数据库获取到对应的状态进行判断是否为选中状态)
2017/07/11 Javascript
Angular通过angular-cli来搭建web前端项目的方法
2017/07/27 Javascript
JavaScript伪数组用法实例分析
2017/12/22 Javascript
angular6.0开发教程之如何安装angular6.0框架
2018/06/29 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
在vue中嵌入外部网站的实现
2020/11/13 Javascript
Python中请使用isinstance()判断变量类型
2014/08/25 Python
Django使用详解:ORM 的反向查找(related_name)
2018/05/30 Python
使用python 写一个静态服务(实战)
2019/06/28 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
2020/05/16 Python
牵手50香港:专为黄金岁月的单身人士而设的交友网站
2020/08/14 全球购物
教堂婚礼主持词
2014/03/14 职场文书
工厂采购员岗位职责
2014/04/08 职场文书
企业宣传标语
2014/06/09 职场文书
委托书格式范文
2015/01/28 职场文书
详解JVM系列之内存模型
2021/06/10 Javascript
德生2P3收音机开箱评测
2022/04/30 无线电