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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章