jquery 对json字符串转换

本文介绍了一种使用jQuery扩展方法实现JSON字符串与JavaScript对象相互转换的技术。通过定义两个扩展方法`evalJSON`和`toJSON`,可以轻松地将JSON字符串解析成JavaScript对象或将JavaScript对象序列化为JSON字符串。这种方法适用于需要处理JSON数据的Web应用程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文地址:http://hi.baidu.com/124232323/blog/item/07f9fd954b6fe540d0135e66.html

 

//扩展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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值