(function($) {
// the code of this function is from
// http://lucassmith.name/pub/typeof.html
$.type = function(o) {
var _toS = Object.prototype.toString;
var _types = {
'undefined': 'undefined',
'number': 'number',
'boolean': 'boolean',
'string': 'string',
'[object Function]': 'function',
'[object RegExp]': 'regexp',
'[object Array]': 'array',
'[object Date]': 'date',
'[object Error]': 'error'
};
return _types[typeof o] || _types[_toS.call(o)] || (o ? 'object' : 'null');
};
// the code of these two functions is from mootools
// http://mootools.net
var $specialChars = { '\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '"': '\\"', '\\': '\\\\' };
var $replaceChars = function(chr) {
return $specialChars[chr] || '\\u00' + Math.floor(chr.charCodeAt() / 16).toString(16) + (chr.charCodeAt() % 16).toString(16);
};
$.toJSON = function(o) {
var s = [];
switch ($.type(o)) {
case 'undefined':
return 'undefined';
break;
case 'null':
return 'null';
break;
case 'number':
case 'boolean':
case 'date':
case 'function':
return o.toString();
break;
case 'string':
return '"' + o.replace(/[\x00-\x1f\\"]/g, $replaceChars) + '"';
break;
case 'array':
for (var i = 0, l = o.length; i < l; i++) {
s.push($.toJSON(o[i]));
}
return '[' + s.join(',') + ']';
break;
case 'error':
case 'object':
for (var p in o) {
s.push(p + ':' + $.toJSON(o[p]));
}
return '{' + s.join(',') + '}';
break;
default:
return '';
break;
}
};
$.evalJSON = function(s) {
if ($.type(s) != 'string' || !s.length) return null;
return eval('(' + s + ')');
};
})(jQuery);
分享到:
相关推荐
Jquery-json 是 jQuery 的一个插件,可轻松实现对象和 JSON 字符串之间的转换。可序列化 JavaScript 对象、数值、字符串和数组到 JSON 字符串,同时可转换 JSON 字符串到 JavaScript。 var thing = {plugin: '...
这些扩展方法使得在使用jQuery时,无需依赖其他库如Prototype.js,就能实现完整的JSON序列化和反序列化功能,简化了开发过程。将这些代码片段添加到自己的项目中,即可无缝集成到现有的jQuery环境,提高JSON处理的...
使用jQuery的`toJSON`和`evalJSON`,开发者可以方便地在JavaScript对象和JSON字符串之间进行转换,提高了开发效率和数据交换的准确性。同时,因为JSON格式是标准且跨语言的,所以不仅仅局限于JavaScript,其他编程...
首先,我们需要了解jQuery是如何通过扩展方法来增加新功能的。`jQuery.extend()` 方法用于添加新的静态方法到 jQuery 对象上。例如,在本例中,我们使用 `jQuery.extend()` 来扩展两个新方法:`evalJSON` 和 `toJSON...
jquery插件 ,可操作JSON,$.toJSON $evalJSON
对于更高级的JSON操作,可以使用jquery-json扩展库,该库为jQuery提供了两个新的方法:toJSON和evalJSON。toJSON方法用于将JavaScript对象转换为JSON格式的字符串,而evalJSON方法则用于将JSON字符串转换为...
4. **使用示例**:在实际项目中,你可以这样使用evaljson: ```javascript var evaljson = require('node-evaljson-master'); var jsonString = '{"name":"John", "greet": "eval:console.log('Hello, ' + this....
在前端开发中,还可以使用一些前端框架提供的工具函数来实现对象与JSON字符串之间的转换,如Prototype.js中的evalJSON方法。 JSON是现在互联网上数据交换的主要格式之一,它被广泛应用于Web服务接口,是前后端进行...
在描述中提到的`evalJSON()`方法是Prototype库中的一个功能,它允许开发者从JSON字符串中解析出JavaScript对象。这个方法是安全的,因为它在解析前会检查数据的安全性,防止了潜在的跨站脚本(XSS)攻击。通过这个...
### Json数据格式的使用方法入门教程 #### 一、JSON数据格式简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它最初由Douglas Crockford提出,...
这里使用了 Prototype.js 框架提供的 `evalJSON()` 方法来解析返回的 JSON 字符串。 #### 七、JSON 在 Java 中的处理 在 Java 中处理 JSON 数据也很常见,通常需要借助第三方库来实现 JSON 的序列化和反序列化。...
根本的解决办法是不用transport.js中的json功能,那么就要有一个相同的功能来代替它,这里我选用jquery-json1.3.js。首先要把transport.js中的json功能删除。由于实现json功能的函数有区别,所以要麻烦改掉原ecshop...
jQuery的$.ajax()方法是核心,支持GET和POST等HTTP请求类型,以及JSON、XML等多种数据格式。例如,一个简单的jQuery Ajax请求可能如下所示: ```javascript $.ajax({ url: "myScript.php", type: "GET", ...
例如,使用Prototype框架的`evalJSON()`方法,可以直接将服务器返回的JSON文本转换成JavaScript变量: ```javascript new Ajax.Request("http://example.com/data.json", { method: "get", onSuccess: function...
- **evalJSON()**:Prototype提供了一个解析JSON(JavaScript Object Notation)字符串的方法。它将JSON格式的字符串转换为JavaScript对象,使数据交换变得更加方便。使用方式如下: ```javascript var json...
在处理JSON时,Prototype提供了方便的方法来解析JSON字符串。 在"json for javasript"这个主题中,我们重点讨论如何使用Prototype库来解析JSON格式的字符串。 Prototype中的`evalJSON()`函数可以安全地将JSON字符串...
Prototype提供了`.evalJSON()`方法,可以将JSON字符串转换为JavaScript对象。这使得我们可以轻松地访问服务器返回的数据,比如`jsonData.success`和`jsonData.message`。 4. **用户界面交互** 验证过程中,我们...
当处理JSON字符串到JavaScript对象的转换时,JavaScript本身提供了`JSON.parse()`方法,但如果是使用prototype库,可以使用`evalJSON()`函数: ```javascript var jsObj = JSON.parse(jsonStr); // JavaScript原生...
像Prototype这样的JavaScript库提供了`evalJSON()`方法,可以将接收到的JSON文本转换为JavaScript对象: ```javascript new Ajax.Request("http://url", { method: "get", onSuccess: function(transport) { var ...