jQuery json处理

最近用到json格式存储数据。用的是jquery的ajax。

jquery将对象转换成json字符串方法。

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 ;
         }
     }





数据存储

$("#Button1").click(function () {

         var datalist = []; //定义数组
         for ( var i=0;i<100;i++){
         datalist.push({ 'name' : i, 'number' : i }); //添加数据               
         }
         //ajax提交
         $.ajax({
             url: 'ajax/Calendar.ashx' ,
             type: 'POST' ,
             dataType: 'text' ,
             data: {
                 "name" : $.toJSON(datalist) //将数组转换成json字符串
                },
             success: function (reslut) {
                 alert(reslut);
             }
         });
     });
});






数据读取

$.ajax({
     url: 'ajax/Calendar.ashx' ,
     type: 'POST' ,
     dataType: 'text' ,
     data: {
         year: $( "#DropDownList1" ).val()
     },
     success: function (reslut) {
         setcalendar(reslut);
     }
});
function setcalendar(reslut) {
                       var json = eval(reslut); //将字符串转换成json
         for ( var i = 0; i < json.length; i++) {
                   alter(json.name); //属性
             }
         }


原文链接http://www.cnblogs.com/ylws/archive/2011/04/01/2001889.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值