JSON常用操作

1. 模拟ChcekBox提交

function updateCatalog() {
    var param = {};
    var pdata = [];    
    var i = 0;
    $("input[name='ids[]']").each(function() {
        //alert(this.checked);
        if(this.checked == true) {
            //alert($(this).val());
            pdata.push($(this).val());
        }
    });
    param.ids = pdata;
    param.catalog_id = $("#catalog_list").val();
    alert(JSON.stringify(param));
    return false;
}

2. JS对象转json串

var notedata = new Object;
notedata.nid = strnid;
notedata.type = $hidtype.val();
notedata.title = $txttitle.val();
notedata.content = $txtacontent.val();
var jsonotedata = JSON.stringify(notedata);

3. JSON串转JSON对象

var jsonStr = '{"id":10,"name":"hehhe"}';
var jsonObj = JSON.parse(jsonStr);

 4. 一个简单的Jquery.HashMap插件

/**
 功能:jquery HashMap 插件
 作者:李小宇
*/
;(function($){//可以去掉开头的 ; (分号),国外的开发人员编写的插件时的一种习惯
    
    //Map数据
    var $_values = {}
    
    var $_HashMap = {
        clear: function() { //清除Map数据
            $_values = {};
        },
        containsKey: function($key) { //检查Map中是否指定key
            if(typeof $_values[$key] == "undefined") {
                return false;
            }
            return true;
        },
        containsValue: function($value) { //Map是否包含指定value
            var jsonLength = 0;
            for(var item in $_values) {
                if($_values[item] == $value) {
                    return true;
                }
            }
            return false;
        },
        contains: function($key, $value) { //Map中是否包含指定的key和对应的value
            if(this.containsKey($key))
            {
                return (this.get($key) == $value);
            }
            return false;
        },
        get: function($key) { //根据Key取得Map中的value
            if (this.containsKey($key)) {
                return $_values[$key];
            } else {
                return null;
            }
        },
        isEmpty: function() { //Map是否为空
            return $.isEmptyObject($_values);
        },
        put: function($key, $value) { //放入指定的Key和value到Map,如果存在同名键名,则覆盖
            $_values[$key] = $value;
        },
        putAll: function($value) { //批量放入values到Map
            for(var item in $value) {
                this.put(item,$value[item]);
            }
        },
        remove: function($key) { //移出Map中指定的键名value
            json = {};
            for(var item in $_values) {
                if($key != item) {
                    json[item] = this.get(item);
                }
            }
            $_values = json;
        },
        size: function() { //取得Map对象的长度
            var jsonLength = 0;
            for(var item in $_values) {
                jsonLength++;
            }
            return jsonLength;
        },
        toString: function() {
            return JSON.stringify($_values);
        }
    };
    
    $.extend({"HashMap":$_HashMap});
    
})(jQuery);

测试

$(function() {
        //var json = [{"a1":"1"},{"a2":"2"},{"a3":"3"}];
        var json = {"a1":"1","a2":"2","a3":"3"};
        $.HashMap.putAll(json);
        alert($.HashMap.toString());
    });

说明:插件的用法的就是js匿名函数的用法,例如下面的两段代码是等效的

(function(a,b){
    alert(a+b);
})(1,2)

等于

var add = function(a,b) {
    alert(a+b);
}
add(1,2);
原文地址:https://www.cnblogs.com/phpfans/p/3225332.html