`
zhkac
  • 浏览: 53951 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

jQuery方法扩展:type, toJSON, evalJSON

阅读更多
(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.json2.4.js

    Jquery-json 是 jQuery 的一个插件,可轻松实现对象和 JSON 字符串之间的转换。可序列化 JavaScript 对象、数值、字符串和数组到 JSON 字符串,同时可转换 JSON 字符串到 JavaScript。 var thing = {plugin: '...

    扩展jQuery的json功能文.pdf

    这些扩展方法使得在使用jQuery时,无需依赖其他库如Prototype.js,就能实现完整的JSON序列化和反序列化功能,简化了开发过程。将这些代码片段添加到自己的项目中,即可无缝集成到现有的jQuery环境,提高JSON处理的...

    jquery.json-2.4.min.js

    使用jQuery的`toJSON`和`evalJSON`,开发者可以方便地在JavaScript对象和JSON字符串之间进行转换,提高了开发效率和数据交换的准确性。同时,因为JSON格式是标准且跨语言的,所以不仅仅局限于JavaScript,其他编程...

    jquery objtoJson

    首先,我们需要了解jQuery是如何通过扩展方法来增加新功能的。`jQuery.extend()` 方法用于添加新的静态方法到 jQuery 对象上。例如,在本例中,我们使用 `jQuery.extend()` 来扩展两个新方法:`evalJSON` 和 `toJSON...

    jquery操作json

    jquery插件 ,可操作JSON,$.toJSON $evalJSON

    jQuery 中使用JSON的实现代码

    对于更高级的JSON操作,可以使用jquery-json扩展库,该库为jQuery提供了两个新的方法:toJSON和evalJSON。toJSON方法用于将JavaScript对象转换为JSON格式的字符串,而evalJSON方法则用于将JSON字符串转换为...

    前端开源库-evaljson

    4. **使用示例**:在实际项目中,你可以这样使用evaljson: ```javascript var evaljson = require('node-evaljson-master'); var jsonString = '{"name":"John", "greet": "eval:console.log('Hello, ' + this....

    json知识总结

    在前端开发中,还可以使用一些前端框架提供的工具函数来实现对象与JSON字符串之间的转换,如Prototype.js中的evalJSON方法。 JSON是现在互联网上数据交换的主要格式之一,它被广泛应用于Web服务接口,是前后端进行...

    json-lib-2.3-jdk15.jar包和prototype.js及jquery-1.3.1.js

    在描述中提到的`evalJSON()`方法是Prototype库中的一个功能,它允许开发者从JSON字符串中解析出JavaScript对象。这个方法是安全的,因为它在解析前会检查数据的安全性,防止了潜在的跨站脚本(XSS)攻击。通过这个...

    Json数据格式的使用方法入门教程.pdf

    ### Json数据格式的使用方法入门教程 #### 一、JSON数据格式简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它最初由Douglas Crockford提出,...

    JSON_入门指南

    这里使用了 Prototype.js 框架提供的 `evalJSON()` 方法来解析返回的 JSON 字符串。 #### 七、JSON 在 Java 中的处理 在 Java 中处理 JSON 数据也很常见,通常需要借助第三方库来实现 JSON 的序列化和反序列化。...

    transport.js

    根本的解决办法是不用transport.js中的json功能,那么就要有一个相同的功能来代替它,这里我选用jquery-json1.3.js。首先要把transport.js中的json功能删除。由于实现json功能的函数有区别,所以要麻烦改掉原ecshop...

    jquery prototype dojo 之 Ajax example and 学习总结

    jQuery的$.ajax()方法是核心,支持GET和POST等HTTP请求类型,以及JSON、XML等多种数据格式。例如,一个简单的jQuery Ajax请求可能如下所示: ```javascript $.ajax({ url: "myScript.php", type: "GET", ...

    JSON 数据格式解析

    例如,使用Prototype框架的`evalJSON()`方法,可以直接将服务器返回的JSON文本转换成JavaScript变量: ```javascript new Ajax.Request("http://example.com/data.json", { method: "get", onSuccess: function...

    jQuery框架prototype

    - **evalJSON()**:Prototype提供了一个解析JSON(JavaScript Object Notation)字符串的方法。它将JSON格式的字符串转换为JavaScript对象,使数据交换变得更加方便。使用方式如下: ```javascript var json...

    json for javascript

    在处理JSON时,Prototype提供了方便的方法来解析JSON字符串。 在"json for javasript"这个主题中,我们重点讨论如何使用Prototype库来解析JSON格式的字符串。 Prototype中的`evalJSON()`函数可以安全地将JSON字符串...

    prototype整合json实现无刷新验证用户名

    Prototype提供了`.evalJSON()`方法,可以将JSON字符串转换为JavaScript对象。这使得我们可以轻松地访问服务器返回的数据,比如`jsonData.success`和`jsonData.message`。 4. **用户界面交互** 验证过程中,我们...

    json的讲解

    当处理JSON字符串到JavaScript对象的转换时,JavaScript本身提供了`JSON.parse()`方法,但如果是使用prototype库,可以使用`evalJSON()`函数: ```javascript var jsObj = JSON.parse(jsonStr); // JavaScript原生...

    json初级入门资料

    像Prototype这样的JavaScript库提供了`evalJSON()`方法,可以将接收到的JSON文本转换为JavaScript对象: ```javascript new Ajax.Request("http://url", { method: "get", onSuccess: function(transport) { var ...

Global site tag (gtag.js) - Google Analytics