`

扩展jQuery对json字符串的转换

阅读更多
//扩展jQuery对json字符串的转换  
	jQuery.extend({    
		/** * @see 将json字符串转换为对象 * @param json字符串 * @return 返回object,array,string等对象 */    
		evalJSON: function(strJson) {      
			return eval("(" + strJson + ")");    }  });  
	jQuery.extend({    
		/** * @see 将javascript数据类型转换为json字符串 * @param 待转换对象,支持object,array,string,function,number,boolean,regexp * @return 返回json字符串 */    
		toJSON: function(object) {      
			
			var type = typeof object;      
			if ('object' == type) {        
				if (Array == object.constructor) type = 'array';        
				else if (RegExp == object.constructor) type = 'regexp';        
				else type = 'object';      }      
			switch (type) {      
			case 'undefined':      
				case 'unknown':        
					return;        
					break;      
					case 'function':      
					case 'boolean':      
					case 'regexp':        
						return object.toString();        
						break;      
					case 'number':        
						return isFinite(object) ? object.toString() : 'null';        
						break;      
					case 'string':        
						return '"' + 
							object.replace(/(\\|\")/g, "\\$1").replace(/\n|\r|\t/g, 
									function() {          
							var a = arguments[0];          
							return (a == '\n') ? '\\n': (a == '\r') ? '\\r': (a == '\t') ? '\\t': ""  
								}) + '"';        
						break;     
					case 'object':        
						if (object === null) return 'null';        
						var results = [];        
						for (var property in object) {          
							var value = jQuery.toJSON(object[property]);          
							if (value !== undefined) results.push(jQuery.toJSON(property) + ':' + value);        
							}        
						return '{' + results.join(',') + '}';        
						break;      
					case 'array':        
						var results = [];        
						for (var i = 0; i < object.length; i++) {          
							var value = jQuery.toJSON(object[i]);          
							if (value !== undefined) results.push(value);        
						}        
						return '[' + results.join(',') + ']';        
						break;      
					}    
			}  });  
分享到:
评论

相关推荐

    JQuery扩展包-多种序列化方式

    Jquery自带的序列化,仅对form表单进行序列化,有很大的局限性,现在对齐进行扩展可以进行任意的序列化,包括json格式,字符串格式、数组格式,数组时自动转化为字符串等。并可以根据开发需要,随时扩展自己想要的...

    JQuery权威指南源代码

    使用jQuery扩展工具函数实现对字符串指定类型的检测 第10章 在指定的查找范围内获取DOM元素 选择器中含有空格符与不含空格符的区别 事件中的target方法优化冒泡现象 使用data()方法在元素上存取移数据 使用data...

    jQuery权威指南-源代码

    9.5 综合案例分析—使用jQuery扩展工具函数实现对字符串指定类型的检测/305 9.5.1 需求分析/305 9.5.2 效果界面/305 9.5.3 功能实现/306 9.5.4 代码分析/309 9.6 本章小结/311 第10章 jQuery性能优化与最佳...

    jQuery权威指南366页完整版pdf和源码打包

    9.2.2 数组和对象的操作 9.2.3 字符串操作 9.2.4 测试操作 9.2.5 url操作 9.3 工具函数的扩展 9.4 其他工具函数—$.proxy() 9.5 综合案例分析—使用jquery扩展工具函数实现对字符串指定类型的检测 ...

    jQuery攻略.pdf

     《jQuery攻略》对使用jQuery过程中遇到的各类问题给出了解决方案,比如,如何使用jQuery框架、CSS选择器、DOM、事件处理、动画效果,以及如何开发Ajax应用程序、如何使用jQuery工具函数、如何使用插件扩展jQuery。...

    laravel-to-jquery-validation:该包通过转换为 jquery 验证规则,使 laravel 中定义的验证规则在客户端工作。 它使用 Jquery 验证插件。 它还允许使用 Laravel 验证消息,以便您可以为双方显示相同的消息

    这个包不再维护。...可以区分数字输入和字符串输入 支持用户友好的输入名称 安装 在 composer.json 中需要bllim/laravel-to-jquery-validation并运行composer update 。 { "require": { "laravel/framework":

    JavaScript实战

    2.3.2 字符串 18 2.3.3 Boolean 19 2.4 变量 19 2.4.1 创建变量 20 2.4.2 使用变量 22 2.5 操作数据类型和变量 23 2.5.1 基本算术 24 2.5.2 操作的顺序 25 2.5.3 组合字符串 25 2.5.4 组合数值和字符串 26 2.5.5 ...

    最新Python3.5零基础+高级+完整项目(28周全)培训视频学习资料

    字符串常用操作 字典的使用 三级菜单实例 本周作业-购物车优化 第3周 作业 上节内容回顾 集合及其运算 文件读与写详解 心灵鸡汤 文件修改详解 字符编码转换详解 函数与函数式编程 函数式编程之参数详解 局部变量与...

    C#基类库(苏飞版)

    6.从字符串里随机得到,规定个数的字符串. 复制代码 22.条形码 BarCodeToHTML 本类是个条码生成类,大家可根据需要自己设置,非常好用 23.图片 ImageClass 主要功能有:缩略图片,图片水印,文字水印,调整光暗...

    xheditor-1.1.14

    方法2:利用xhEditor提供的jQuery插件接口来实现对特定textarea的初始化和传递参数,例: $('#elm1').xheditor(); 或者 $('#elm1').xheditor({tools:'mini'}); 特别说明:两种初始化方法只能选择其中一种使用,如果...

    reddit_api_challenge

    API挑战 在本练习中,我们将学习: 进行 api 调用 操作一个大的 JSON 对象 ... 在 javascript 中构建 html 字符串很棘手! 请务必小心使用单引号或双引号! 像在 html 中那样缩进代码会很有帮助,例如:

    Reddit-API-Practice-Project:用于创建 rfunny 画廊视图的 General Assembly FEWD 课程作业

    API挑战 在本练习中,我们将学习: 进行 api 调用 操作一个大的 JSON 对象 ... 在 javascript 中构建 html 字符串很棘手! 请务必小心使用单引号或双引号! 像在 html 中那样缩进代码会很有帮助,例如:

    python入门到高级全栈工程师培训 第3期 附课件代码

    08 Python 字符串的魔法 第11章 01 Python 字符串的魔法 02 Python range的用法以及练习 03 Python 课上练习解释 04 Python 基础知识练习题试题 第12章 01 今日内容介绍以及基础测试题答案讲解 02 Python 列表的...

    play框架手册

    返回一个JSON字符串 - 33 - 返回一个XML字符串F - 34 - 返回二进制内容 - 34 - 作为附件下载文件 - 34 - 执行一个模板 - 35 - 跳转到其他URL - 36 - Action链 - 36 - 定制web编码 - 37 - 拦截器 - 38 - @Before - 38...

    play framework 框架手册 word 版

    返回一个JSON字符串 - 33 - 返回一个XML字符串 - 34 - 返回二进制内容 - 34 - 作为附件下载文件 - 34 - 执行一个模板 - 35 - 跳转到其他URL - 36 - Action链 - 36 - 定制web编码 - 37 - 拦截器 - 38 - @Before - 38 ...

    精通AngularJS part1

    AngularJS不是基于字符串的模板引擎290 响应DOM事件更新模型291 将模型变化传播给DOM291 同步DOM和模型变化292 Scope$apply——打开AngularJS世界的钥匙293 深入$digest循环295 整合300 112性能优化——设置...

    Java面试宝典2020修订版V1.0.1.doc

    35、MySQL、SqlServer、oracle写出字符存储、字符串转时间 52 36、update语句可以修改结果集中的数据吗? 53 37、oracle如何设置主键自动增长? 53 38、表连接、子查询的区别是什么?它们可以相互转化吗?你倾向于用...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -Window的Target属性由字符串类型变为枚举类型,注意更新以前的代码:Target="_self" -&gt; Target="Self", Target="_parent" -&gt; Target="Parent"。 -MenuButton, LinkButton, Button, LinkButtonField的...

    JAVA上百实例源码以及开源项目

     设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节  通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...

Global site tag (gtag.js) - Google Analytics