js 对象和Json的转换,js及深度复制
- Object.prototype.deep_clone = function(){
- eval("var tmp = " + this.toJSON());
- return tmp;
- }
- Object.prototype.toJSON = function(){
- var json = [];
- for(var i in this){
- if(!this.hasOwnProperty(i)) continue;
- //if(typeof this[i] == "function") continue;
- json.push(
- i.toJSON() + " : " +
- ((this[i] != null) ? this[i].toJSON() : "null")
- )
- }
- return "{\n " + json.join(",\n ") + "\n}";
- }
- Array.prototype.toJSON = function(){
- for(var i=0,json=[];i<this.length;i++)
- json[i] = (this[i] != null) ? this[i].toJSON() : "null";
- return "["+json.join(", ")+"]"
- }
- String.prototype.toJSON = function(){
- return '"' +
- this.replace(/(\\|\")/g,"\\$1")
- .replace(/\n|\r|\t/g,function(){
- var a = arguments[0];
- return (a == '\n') ? '\\n':
- (a == '\r') ? '\\r':
- (a == '\t') ? '\\t': ""
- }) +
- '"'
- }
- Boolean.prototype.toJSON = function(){return this}
- Function.prototype.toJSON = function(){return this}
- Number.prototype.toJSON = function(){return this}
- RegExp.prototype.toJSON = function(){return this}
- // strict but slow
- String.prototype.toJSON = function(){
- var tmp = this.split("");
- for(var i=0;i<tmp.length;i++){
- var c = tmp[i];
- (c >= ' ') ?
- (c == '\\') ? (tmp[i] = '\\\\'):
- (c == '"') ? (tmp[i] = '\\"' ): 0 :
- (tmp[i] =
- (c == '\n') ? '\\n' :
- (c == '\r') ? '\\r' :
- (c == '\t') ? '\\t' :
- (c == '\b') ? '\\b' :
- (c == '\f') ? '\\f' :
- (c = c.charCodeAt(),('\\u00' + ((c>15)?1:0)+(c%16)))
- )
- }
- return '"' + tmp.join("") + '"';
- }
测试:
- var json = {
- str : "abcde",
- num : 6,
- reg : /foobar/i,
- array : [1,2,3,4,5],
- func : function(x,y){return x+y},
- obj : {a : "b"}
- }.toJSON();
- alert(json);
- // result
- {
- "str" : "abcde",
- "num" : 6,
- "reg" : /foobar/i,
- "array" : [1, 2, 3, 4, 5],
- "func" : function(x,y){return x+y},
- "obj" : {
- "a" : "b"
- }
- }
转载于:https://www.cnblogs.com/loushangshaonian/archive/2012/09/19/2693089.html
js 对象和Json的转换,js及深度复制相关推荐
- jQuery——高级(js对象、json、ajax)
目录 js对象 json ajax js对象 创建js对象的两种方式: 1.通过new Object创建: var p1 = new Object(); // 设置属性,和方法 p1.name = & ...
- vscode js对象转json字符串
插件 JSON Parse & Stringify 使用 1.js对象转json字符串 选中js对象,ctrl+shift+p调出命令输入框 输入JSON: Stringify Javascr ...
- JS对象与JSON字符串之间的转换
JSON - JS中的对象只有JS自己认识,其他的语言都不认识 - JSON就是一个特殊格式的字符串,这个字符串可以被任意的语言所识别, 并且可以转换为任意语言中的对象,JSON在开发中主要用来数据 ...
- JS对象和JSON字符串相互转化总结
在web开发中,一般情况下需要前端和服务器的交换数据,我们一般使用JSON来完成数据的传输,JavaScript操作的对象是一般是变量:因此我们需要将JSON字符串转换为JS变量,下面总结JS对象和J ...
- JSON转JS对象,JS对象转JSON
JSON转JS对象,JS对象转JSON </h1><div class="clear"></div><div class="po ...
- fabric.js对象转json存储并通过json转fabric klass对象添加到画布中
fabric对象转JSON: JSON对象转fabric对象[klass]: 这个是对于图片对象的 从图片对象JSON转 klass对象 fabric.Rect.fromObject(jsonObje ...
- 将JS对象转换为JSON |将JSON转换为JS对象
一.将JSON字符串为JS对象 在JS中,如果直接输入 var arr = {arr:[1,2,3]}; 返回的是一个object对象 因此如果我们需要将其转换为JSON,可以用如下方式进行转换 va ...
- JS对象和JSON的相互转换方法
JS对象和JSON的相互转换方法 一个复杂的js对象 //json要求和js对象是一样的,只不过key必须是字符串//js对象在声明的时候是否加双引号是可以选择的var student = {last ...
- Json对象和Json字符串以及js对象(JavaScript对象)的区别
1.Json概念 概念:JSON (JavaScript Object Notation) 一种简单的数据格式,是一种比较轻量级的数据存储格式: 2.Json与JS对象的对比 区 别 JSON Jav ...
最新文章
- java form 上传文件_java通过表单进行文件上传的几种方法
- IDEA 在头注解上添加用户名称和时间
- 黑客入侵交警计算机系统删交通违法记录牟利
- 高可用服务 AHAS 在消息队列 MQ 削峰填谷场景下的应用...
- normandie出错重试与缓存机制对交互的影响,开发者注意
- 一行 Python 代码能实现什么丧心病狂的功能? | CSDN博文精选
- oracle装一半报错要卸掉,OpenSUSE下oracle11gR2的安装卸载
- php通用编码,php字符串怎么转换编码
- 橙光游戏软件 怎么整体测试,橙光游戏怎么让编辑来审核?
- 纬度,经度和坐标系网格
- background系列属性
- 《三十岁前的每一天》--水湄物语 读后感
- PTA L1-039 python实现
- 22.数组和指针的姻缘
- springmvc考研交流平台 java ssm mysql
- android 关机闹钟 实现,android 关机闹钟
- iPhone 6/6Plus UI界面设计和适配尺寸规范
- JDK9-G1 -XX:ParallelGCThreads 默认选择源码解析
- 不在985,但这些专业全国“第一”
- iptables限制网速
热门文章
- linux提升网络实时性,通过调整Linux内核参数提升网络性能
- mysql chartset utf 8_[数据库]MySQL chartset_星空网
- python语言程序的特点_Python语言有哪些优点?
- linux iconv函数失败,Linux 编码转换 (iconv失败的解决方法)
- 单刹车信号不合理故障_关于汽车制动系统有哪些故障?该如何解决?
- 什么是Ruby on Rails
- 路由器安置(Routing)
- CVPR 2020 《12-in-1: Multi-Task Vision and Language Representation Learning》论文笔记
- 2017年10月08日 上学
- 特征值与特征向量(一)