JS对Json对象Distinct
Json对象去重
今日有一个需求如下:
从数据库中取出数据源转化成json字符串绑定到隐藏域中,取出的json字符串如下:
string data="[{"CompanyName":"集团总部","CompanyCode":"ORG2"},{"CompanyName":"集团总部","CompanyCode":"ORG2"}]";
现在需要绑定到html上的select,就会出现重复的下拉数据了。
希望得到的数据是:string data="[{"CompanyName":"集团总部","CompanyCode":"ORG2"}]";
如下代码:
<td style="width: 80px">
<label class="labDoc">公司:</label>
</td>
<td style="width: 200px;">
<select id="sel_Company">
</select>
</td>
解释几点:
1.jQuery.parseJSON()
函数用于将格式完好的JSON字符串转为与之对应的JavaScript对象(由于我是从C#取的DataTable转化成的Json字符串)
2.toJSON 方法用来将一个普通的 JavaScript 对象序列化为 JSON 串
如果有不明白的地方请参考(http://www.cnblogs.com/haogj/archive/2011/12/01/2271098.html)
//在页面初始化时加载此方法
function getDept() {
var data1 = jQuery.parseJSON($("#DeptData").val()); //DeptData是一个隐藏域从PageLoad中绑定的Json字符串
//alert($("#CompanyData").val());
var data = jQuery.parseJSON(disJson(data1));
$("#sel_Company").append("<option value=''>-----请选择公司-----</option>");
for (var i = 0; i < data.length; i++) {
$("#sel_Company").append("<option value='" + data[i].CompanyCode + "'>" + data[i].CompanyName + "</option>");
}
} //去重Json对象
function disJson(data) {
//首先创建2个数组,一个用来返回Json字符串(arr),另一个用于计算是否出现重复数据(arrCompare)
var arr = new Array();
var arrCompare = new Array();
for (var i = 0; i < data.length; i++) {
this.model = {
CompanyCode: data[i].CompanyCode,
CompanyName: data[i].CompanyName
}
//这里我用比较重复数组来查看是否包含新的公司代码,-1没有可以继续插入数组,0则为存在则不可
//这里不能用arr.indexOf(data[i])==-1这样去比较
//因为这样都是[Object Object]没办法去比到底是哪个对象
if (arrCompare.indexOf(data[i].CompanyCode) == -1) {
arr.push(model);
arrCompare.push(data[i].CompanyCode);
}
} //alert($.toJSON(arr))
return $.toJSON(arr);
}
JS对Json对象Distinct的更多相关文章
- Js拼Json对象
我们通常会拼字符串,但是拼字符串的话,遇见占位符会出错. 下面分享一个拼js拼json对象的方法: var jsonArr = []; $ ...
- js遍历json对象
原生js遍历json对象 遍历json对象: 无规律: <script> var json = [ {dd:'SB',AA:'东东',re1:123}, {cccc:'dd',lk:'1q ...
- js 替换json对象中的键名
js 替换json对象中的键名 CreateTime--2018年3月30日15:38:50 Author:Marydon 情景描述: 有个json数组,现在需要将json对象中的key替换掉,值 ...
- js中 json对象与json字符串相互转换的几种方式
以下总结js中 json对象与json字符串相互转换的几种方式: 一.JSON对象转化为JSON字符串 1.使用JSON.stringify()方法进行转换 该方法不支持较老版本的IE浏览器,比如:i ...
- 类对象传输到jsp页面。需要转换为js的json对象时,这么做。
场景:要从一个列表中选择信息,填写入父页面的表单中,但是字段非常多... 后台查询,得到结果,放在列表中. 效果:点击选择产品.. 弹出页面:点击后面的选择产品 选择产品后:信息自动填充.. 实现:点 ...
- js 将json对象转成字符串
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- js中json对象和字符串的转换
JSON.parse() : 字符串-->json对象 var str = '{"name":"huangxiaojian","age" ...
- js 中 json对象 与 json字符串 间相互转换
在数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键 JSON字符串: var str1 = '{ " ...
- JS 中 JSON 对象与字符串之间的相互转换
在开发的过程中,如果对于少量参数的前后台传递,可以直接采用ajax的data函数,按json格式传递,后台Request即可,但有的时候,需要传递多个参数,这样后台 接受的时候Request多个很麻烦 ...
随机推荐
- (二)u-boot2013.01.01 for TQ210:《Makefile分析》
当时写的时候看的是2012-10版本的,但是略对比了一遍和2013.01.01没什么改动,所以这不影响对2013.01.01版本的makefile的理解.本文比较侧重于语法句意的分析,框 ...
- MySQL中/*!40100注释
MySQL中的注释 MySQL中的注释有三种: # 注释内容 -- 注释内容 /* 注释内容*/ 但是,在导出的SQL文件中,也会看到类似如下内容的注释: CREATE DATABASE `blog` ...
- 精益求精, ePub 电子书制作手记
什么是 ePub ePub 是 Electronic Publication 的缩写,意为电子出版,是一个自由的开放标准,属于一种可以“自动重新编排”的内容,也就是文字内容可以根据阅读设备的特性,以最 ...
- Android简易注解View(java反射实现)
一.引言 Android中通过findViewById在布局文件中找到需要的View,加入一个Activity里面有许多的View需要初始化,那将是一件很繁琐的事情.当然Google一下你会发现有很多 ...
- css隐藏元素display:none,opacity:0;filter:alpha(opacity=0-100;,visibility:hidden的区别
在CSS中,让元素隐藏(指屏幕范围内肉眼不可见)的方法很多,有的占据空间,有的不占据空间:有的可以响应点击,有的不能响应点击.我们一般有三种方式:display:none, opacity:0;fil ...
- Ajax异步操作集合啦(阿贾克斯)
/* * Ajax的核心操作对象是xmlHttpRequest * 简化操作步骤:实例化一个xmlHttpRequest对象 ==> 发送请求 ==> 接受响应 ==> 执行回调 * ...
- AjaxPro框架
AjaxPro框架 本章主要了解Ajax框架,掌握Ajaxpro框架的配置以及应用. 内容如下,请点击AjaxPro框架查看:
- win8升级win10后的windows.old怎么删除
现在win10只是出了预览版本,还没有出正式版,但是相信一部分朋友都与小D一样,喜欢尝鲜,已上用上了win10了. 有些人是通过win8或是8.1直接安装升级上去的,这样操作是安装方便,但是系统会为了 ...
- linux交叉编译裁剪内核记录
刚开始学习嵌入式内核编译,因为要修改内核的默认配置,因此这里把自己的学习记录写下来,方便以后查阅,也给别人一个参考,有什么写的不对的或者更好的方法,请指正~ 开发板有usb从口,现在想要让开发板作为一 ...
- usb2.0 规范学习笔记
1.一个USB HOST 最多可以同时支持128 个地址,地址0 作为默认地址,只在设备枚举期间临时使 用,而不能被分配给任何一个设备,因此一个USB HOST 最多可以同时支持127 个地址,如果一 ...