JQuery对JSON数组的操作

假如要对下面的JSON数组进行操作:

新增、修改、删除操作:

var file_kxcl = 
[
	{
		"id":10,
		"children":
			[
				{
					"index":1,
					"modyid":1320,
					"file_type":"kxcl",
					"file_name":"T_GZSJXX.txt",
					"kxcl_type":"3"
				},
				{
					"index":2,
					"modyid":1296,
					"file_type":"kxcl",
					"file_name":"T_GZSJXX_BASE.txt",
					"kxcl_type":"3"
				}
			]
	}
]

新增、修改的js代码:

function save_or_update_filelist(file_id, index, modyid, file_type, file_name, kxcl_type){
	var file_list;		//根据文件类型判断哪个列表:'bxcl' -- file_bxcl ;  'kxcl'--file_kxcl;
	var file_save;		//保存到localStorage时的key name; 
	if(file_type=='bxcl'){
		file_list = file_bxcl;
		file_save = "file_bxcl_list";
	}else if(file_type=='kxcl'){
		file_list = file_kxcl;
		file_save = "file_kxcl_list";
	}

	if(file_list.length==0){													//数组为空,直接创建
		file_list[file_list.length] = 
		{
			"id": file_id,
			"children":
			[
				{
					"index": index,
					"modyid": modyid,
					"file_type":file_type,
					"file_name": file_name,
					"kxcl_type": kxcl_type
				}
			]	
		}
	}else{
		var id_exist = false;
		var index_exist = false;
		$.each(file_list, function(n, value){
			if(value!=null){
				if(value.id == file_id){										//文件列表下存在该文件类型id
					id_exist = true;
					$.each(value.children, function(indx, value){
						if(value.index == index){								//该id下,index已经有了,覆盖
							value.modyid = modyid;
							value.file_type = file_type;
							value.file_name = file_name;
							value.kxcl_type = kxcl_type;
							index_exist = true;
							return false;
						}

					});

					if(index_exist==false){										//该id下,index没有,新增
						value.children[value.children.length] = 
						{
							"index": index,
							"modyid": modyid,
							"file_type":file_type,
							"file_name": file_name,
							"kxcl_type": kxcl_type
						}
					}

					return false;
				}
			}
		});

		if(id_exist==false){													//文件列表下没有此文件类型id,新增
			file_list[file_list.length] = 
			{
				"id":file_id,
				"children":
				[
					{
						"index": index,
						"modyid": modyid,
						"file_type":file_type,
						"file_name": file_name,
						"kxcl_type": kxcl_type
					}
				]	
			}
		}
	}

	console.log(file_list);
	localStorage.setItem(file_save, JSON.stringify(file_list)); 
}

删除JSON数组的操作:

function delete_filelist(file_id, file_type){
	var file_list;
	var file_save;
	if(file_type=='bxcl'){
		file_list = file_bxcl;
		file_save = "file_bxcl_list";
	}else if(file_type=='kxcl'){
		file_list = file_kxcl;
		file_save = "file_kxcl_list";
	}

	if(file_list.length){
		$.each(file_list, function(n, value){
			if(value!=null && value.id == file_id){
				delete file_list[n];
				return false;
			}
		});
	}

	console.log("材料列表");
	console.log(file_list);
	localStorage.setItem(file_save, JSON.stringify(file_list));

}

这篇文章和之前的:

javascript/jquery知识点记录

http://blog.csdn.net/qq_30337695/article/details/50904585对json数组的操作类似,只不过这个json数组更复杂些。方法类似。


举个json格式的例子,这种定义json格式的会用的很多,很常用,有时候又不好想起来怎么去做,记下吧:

var fayuan_data = 
[
    {   
        'province':'徐州',
        'fy_name':'徐州市中级人民法院',
        'data':
            {
                'ms':1110,
                'xs':621,
                'zx':23432,
                'xz':12312,
                'la':123123,
                'yj':12323123
            }
    },
    {
        'province':'连云港',
        'fy_name':'连云港市中级人民法院',
        'data':
            {
                'ms':1112,
                'xs':1231,
                'zx':2431,
                'xz':1134,
                'la':546,
                'yj':8080
            }

    },
    {
        'province':'宿迁',
        'fy_name':'宿迁市中级人民法院',
        'data':
            {
                'ms':1,
                'xs':1231,
                'zx':23453,
                'xz':5675675,
                'la':09090,
                'yj':797979
            }

    },
    {
        'province':'盐城',
        'fy_name':'盐城市中级人民法院',
        'data':
            {
                'ms':1111,
                'xs':11111,
                'zx':1111,
                'xz':1,
                'la':111,
                'yj':11111
            }

    }
]


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值