本文在jQuery基础上扩展了其处理json字符串能力,伟大的jQuery将会更伟大,哈哈!
用jQuery写javascript非常高效,jQuery对ajax的封装也非常到位;使用jQuery一段时间后发现,jQuery在处理json字符串方面功能不是很强,至少比prototype.js差远了,以前用习惯了prototype.js,在进行ajax开发时,处理json数据非常方便;而在jQuery中,只提供了一个简单的jQuery.getJSON()方法,并未提供jQuery本身对json数据的转换处理,将json字符串转换为javascript数据对象还比较容易利用eval()函数即可,但要将javascript的数据类型转换成json字符串就比较难了;刚开始不得同时使用prototype.js和jQuery,但由于著名的$符号函数,所以又不得不对jQuery进行一次转义,这样总究比较麻烦,而且prototype.js文件现在可不像以前那样小了,如果只是单纯的使用prototype.js的json处理功能,没有必要将其集成进来,为此本人对jQuery进行了一个简单的扩展,代码如下,只需要拷贝到你的代码中即可运行:
扩展代码://扩展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;
}
}
});
示例:
var obj = {
name : "sean",
friend : ["fans","bruce","wawa"],
action : function(){alert("gogogog")},
boy : true,
age : 26,
reg : /\b([a-z]+) \1\b/gi,
child : {
name : "none",
age : -1
}
};
var json = $.toJSON(obj);
var objx = $.evalJSON(json);
哈哈,不错吧,现在用起来舒服多了!
分享到:
相关推荐
总结,`jQuery.json.js`这个文件可能是jQuery的一个扩展插件,专门用于增强jQuery对JSON的支持。在实际项目中,通过使用jQuery提供的这些方法,开发者可以轻松地处理JSON数据,实现与服务器的高效通信。同时,理解...
这篇文章主要讲述了如何扩展jQuery以增强其处理JSON(JavaScript Object Notation)数据的能力。JSON是一种轻量级的数据交换格式,常用于前后端数据交互。在原生的jQuery库中,虽然提供了`jQuery.getJSON()`方法来...
总的来说,jQuery JSON v2.6.0作为jQuery的一个扩展,极大地简化了在JavaScript中处理JSON数据的工作,提升了开发效率。通过理解和熟练运用`$.parseJSON()`和`$.toJSON()`,开发者可以更好地驾驭JSON数据,实现高效...
`jquery_json.rar` 提供的插件是jQuery对JSON的支持扩展,帮助开发者更方便地处理JSON数据。这个插件主要包括了两个主要功能:将JavaScript对象转换为JSON字符串(JSON.stringify的早期版本),以及将JSON字符串解析...
jquery.json-2.3.min.js和jquery.json-2.3.js jQuery为开发插件提拱了两个方法,分别是:jQuery.extend(object); 为扩展jQuery类本身 jQuery.fn.extend(object);给jQuery对象添加方法。
`jquery.jsoncookie`是针对jQuery的一个插件,它扩展了jQuery的功能,允许开发者在Cookie中存储和读取JSON格式的数据。Cookie是Web浏览器为服务器存储在用户设备上的一小段文本信息,用于跟踪用户状态、保存用户设置...
3. **jQuery插件**:"jQuery-JSON美化"可能是一个插件,它扩展了jQuery的功能,提供了便捷的API来格式化和展示JSON数据。这些插件通常会将JSON字符串转换为HTML结构,通过CSS样式使其更易阅读,例如使用预格式化文本...
在给定的资源“jquery.json-2.3.js”中,我们可以看到jQuery针对JSON进行的一系列扩展,使得在JavaScript中处理JSON数据变得更加简单和高效。 首先,jQuery JSON 2.3.js的核心功能是JSON的解析和序列化。解析JSON...
在本文中,我们将深入探讨如何使用jQuery和JSON技术与ASP.NET后台进行交互,结合实际案例进行解析。jQuery是一个轻量级、高性能的JavaScript库,它极大地简化了DOM操作、事件处理、动画效果以及Ajax交互。而JSON...
jQuery的`$.ajax()`或`$.getJSON()`方法可以方便地实现这一功能。 3. **Struts后台处理**:在Struts框架中,Action接收到请求后,根据请求参数执行相应的业务逻辑。如果需要返回数据,可以使用JSON对象封装结果,...
`viewer.js`插件还可能支持自定义样式和扩展功能,比如自定义展开/折叠图标、添加搜索功能等,这取决于具体实现和版本。在实际应用中,可以根据需求进行定制,以满足不同项目的需求。 总的来说,`viewer.js`是一个...
本篇将详细介绍如何使用jQuery和JSON实现这种功能,以及如何在VS2008和SQL2000环境下开发此类实例。 ### 1. jQuery简介 jQuery是一个流行的JavaScript库,简化了HTML文档遍历、事件处理、动画和Ajax交互。它的API...
这个项目主要展示了如何在现代浏览器(如Chrome、Firefox、Opera以及IE11)中创建一个可扩展且功能丰富的四级菜单系统。 首先,jQuery是一个轻量级、高性能的JavaScript库,它简化了DOM操作、事件处理、动画制作和...
**jQuery JSON饼图插件详解** 在Web开发中,数据可视化是至关重要的,它能帮助用户更好地理解复杂的数据。jQuery作为一个流行的JavaScript库...在实际使用过程中,可以根据具体需求进行调整和扩展,实现更丰富的功能。
7. **插件扩展**:jQuery-json-editor可能还允许开发者通过插件机制来扩展其功能,以满足特定场景的需求。 在实际开发中,这个库可以应用于各种场景,如后台管理系统中需要配置JSON数据的地方,或者需要用户输入...
总结来说,`jquery.json-2.4.min.js` 插件是jQuery的一个扩展,提供了JSON序列化和反序列化的功能,使得在JavaScript环境中处理JSON数据变得更加便捷和安全。在现代Web开发中,理解和掌握JSON以及相关的处理方法,...
本示例"jQuery JSON动态获取表格数据代码.zip"是关于如何利用jQuery和JSON来动态地填充表格数据,同时提供了一些交互功能,如折叠和展开表格行。下面将详细解释相关知识点。 首先,jQuery库的使用: 1. DOM操作:...
这些文件主要涉及jQuery库及其相关的扩展插件,以及JSON处理的相关功能。让我们详细探讨一下每个文件及其在IT领域的应用。 1. **jquery-1.4.2.min.js**:这是jQuery库的一个较早版本(1.4.2)。jQuery是一个广泛...
然而,需要注意的是,`toJSON`并非jQuery的核心功能,而是来自一个名为"json2.js"的插件。在较新的jQuery版本中,可以使用JavaScript内置的`JSON.stringify`方法来达到相同的效果: ```javascript var data = {name...